为什么从print(same(p)函数得到False?我应该去找Tru

2024-04-20 00:40:35 发布

您现在位置: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(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))

Tags: namegamelenreturnifdefargstemp
1条回答
网友
1楼 · 发布于 2024-04-20 00:40:35

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

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

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

相关问题 更多 >