关于返回值的类型问题
tkinter.Misc.__bases__的返回值为(<class 'object'>,)那如果我需要用if条件语句判断tkinter.Misc.__bases__ 的返回值是否为(<class 'object'>,)该如何写代码呢
已知直接写 if tkinter.Misc.__bases__ == (<class 'object'>,)
tkinter.Misc.__bases__ ==<class 'object'>
tkinter.Misc.__bases__ =="<class 'object'>"
tkinter.Misc.__bases__ =="(<class 'object'>,)"
都是错误的
且tkinter.Misc.__bases__的返回值既不是字符串也不是元祖
{:5_92:}
可以使用 isinstance() 函数来判断返回值是否为 object 类型的元组。例如:
if isinstance(tkinter.Misc.__bases__, tuple) and len(tkinter.Misc.__bases__) == 1 and tkinter.Misc.__bases__ is object:
# do something
解释一下上面的代码:
isinstance(tkinter.Misc.bases, tuple) 检查返回值是否为元组类型
len(tkinter.Misc.bases) == 1 确保返回值只有一个元素
tkinter.Misc.bases is object 检查第一个元素是否为 object 类型
需要同时满足这三个条件,才能判断返回值是否为(<class 'object'>,)。 本帖最后由 isdkz 于 2023-5-2 10:17 编辑
你可以将<class 'object'>放在一个元组中进行比较:
if tkinter.Misc.__bases__ == (object,):
# 你的代码
在这里我们将object放在一个元组中,然后比较两个元组是否相等。这样就能正确地判断tkinter.Misc.__bases__的返回值是否为(<class 'object'>,) 。注意,这里我们用的是object而不是<class 'object'> 。
页:
[1]