获取Python Tkinter对象类型
我目前正在开发一个程序,该程序在Python程序中处理许多不同的可能条目小部件 我需要一些代码来确定特定对象的小部件类型,例如获取Python Tkinter对象类型,python,class,tkinter,Python,Class,Tkinter,我目前正在开发一个程序,该程序在Python程序中处理许多不同的可能条目小部件 我需要一些代码来确定特定对象的小部件类型,例如Entry或Checkbutton 我尝试过使用type(var)方法,但没有成功(我得到了缺少所需变量self的错误)以及var.\uu类,我没有取得任何进展 for d in dataTypes: if isinstance(d, Entry): print("Found Entry!") elif type(d).__name__ =
Entry
或Checkbutton
我尝试过使用type(var)
方法,但没有成功(我得到了缺少所需变量self
的错误)以及var.\uu类
,我没有取得任何进展
for d in dataTypes:
if isinstance(d, Entry):
print("Found Entry!")
elif type(d).__name__ == 'Checkbutton':
print("Found Checkbox!")
有人知道我如何解决这个问题吗?如果您需要名称作为字符串,可以使用
.winfo\u class()
方法:
for d in dataTypes:
if d.winfo_class() == 'Entry':
print("Found Entry!")
elif d.winfo_class() == 'Checkbutton':
print("Found Checkbutton!")
或者,您可以访问\uuuu name\uuuu
属性:
for d in dataTypes:
if d.__name__ == 'Entry':
print("Found Entry!")
elif d.__name__ == 'Checkbutton':
print("Found Checkbutton!")
也就是说,使用是一种更常见的/类似于蟒蛇的方法:
for d in dataTypes:
if isinstance(d, Entry):
print("Found Entry!")
elif isinstance(d, Checkbutton):
print("Found Checkbutton!")
此外,您当前的代码失败,因为类型(d)。\uu\u name\uu
不会返回您认为它会返回的内容:
>>> from tkinter import Checkbutton
>>> type(Checkbutton).__name__
'type'
>>>
请注意,它返回由
type
返回的type对象的名称,而不是Checkbutton
的名称。非常感谢您的回复!您建议的第一个方法返回了一个错误;“无效的位置参数‘self’”,但是第二种方法工作得很好!非常感谢你的帮助!