Python 为什么我从print(same(p)函数中得到False?我应该得到True

Python 为什么我从print(same(p)函数中得到False?我应该得到True,python,Python,我想我应该是真的,但我越来越假,不明白为什么。提前谢谢你调查这件事 def game(name, mix, good, notgood, allv): return str(name), tuple(mix), list(good), list(notgood), list(allv) def create_game(name, mix): return game(name, mix, gap(mix), gap(mix, 0), gap(mix, 1)) def gap

我想我应该是真的,但我越来越假,不明白为什么。提前谢谢你调查这件事

def game(name, mix, good, notgood, allv):
    return str(name), tuple(mix), list(good), list(notgood), list(allv)


def create_game(name, mix):
    return game(name, mix, gap(mix), gap(mix, 0), gap(mix, 1))


def gap(ltras, *args):
    temp = []
    if len(args) == 0:
        temp.append("ABCD")
    if len(args) == 1 and args[0] == 0:
        temp.append("A")
    if len(args) == 1 and args[0] == 1:
        temp.append("AB")
    temp.sort()
    temp.sort(key=len)
    return temp


def same(myobj):
    return isinstance(myobj, type(game))


ourmix = ("T", "E", "S", "T")
p = create_game("ALFA", ourmix)
print(same(p))

它之所以为false是因为“game”是一个函数,而p是“game”函数返回的值,它是一个元组

所以本质上,您要检查元组(变量p)是否是函数的实例,这就是类型(游戏)的计算结果


如果您想以这种方式使用iInstance,可以创建一个名为game的类,并检查iInstance(p,game),或者在类似的函数中,检查iInstance(myobj,game)。

type(game)
是函数,
type(p)
(传递给iInstance)是该函数的返回值(元组)你说的是什么回报?哪个函数?create_游戏的回报…这是对游戏的调用