鱼C论坛

 找回密码
 立即注册
查看: 1846|回复: 2

[已解决]关于返回值的类型问题

[复制链接]
发表于 2023-5-2 10:13:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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__  的返回值既不是字符串也不是元祖

最佳答案
2023-5-2 10:14:57
本帖最后由 isdkz 于 2023-5-2 10:17 编辑

你可以将  <class 'object'>  放在一个元组中进行比较:
if tkinter.Misc.__bases__ == (object,):
    # 你的代码

在这里我们将  object  放在一个元组中,然后比较两个元组是否相等。这样就能正确地判断  tkinter.Misc.__bases__  的返回值是否为  (<class 'object'>,) 。注意,这里我们用的是  object  而不是  <class 'object'> 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-2 10:13:43 | 显示全部楼层
可以使用 isinstance() 函数来判断返回值是否为 object 类型的元组。例如:
if isinstance(tkinter.Misc.__bases__, tuple) and len(tkinter.Misc.__bases__) == 1 and tkinter.Misc.__bases__[0] is object:
    # do something
解释一下上面的代码:

isinstance(tkinter.Misc.bases, tuple) 检查返回值是否为元组类型
len(tkinter.Misc.bases) == 1 确保返回值只有一个元素
tkinter.Misc.bases[0] is object 检查第一个元素是否为 object 类型
需要同时满足这三个条件,才能判断返回值是否为(<class 'object'>,)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-2 10:14:57 | 显示全部楼层    本楼为最佳答案   
本帖最后由 isdkz 于 2023-5-2 10:17 编辑

你可以将  <class 'object'>  放在一个元组中进行比较:
if tkinter.Misc.__bases__ == (object,):
    # 你的代码

在这里我们将  object  放在一个元组中,然后比较两个元组是否相等。这样就能正确地判断  tkinter.Misc.__bases__  的返回值是否为  (<class 'object'>,) 。注意,这里我们用的是  object  而不是  <class 'object'> 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 18:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表