gpt4 book ai didi

python - 在 Python 中列出类属性及其类型

转载 作者:行者123 更新时间:2023-12-01 05:13:25 25 4
gpt4 key购买 nike

myClass 属性之一与 QListWidget 的拖放事件不兼容。获取此断言错误:

assert id(obj) not in self.memo

我需要追踪/确定哪个 myClass 属性导致 AssertionError,然后在将其实例作为 listItem 数据分配给 QListWidget 之前将其删除(稍后当 listItem 被拖放时导致 AssertingError)。

myClass 中有 100 多个属性。而且我找不到过滤那些明显不负责 AssertionError 的属性的方法。

print dir(myClassInstance)

仅打印属性的名称,但不打印其类型。

同样的无用信息来自

attributes = [attr for attr in dir(myClassInstance) if not attr.startswith('__')]

理想情况下,我希望看到 myClass 属性的名称及其类型:它是方法,这是一个字符串..这是另一个类的实例等。

最佳答案

考虑使用inspect.getmembers() :

>>> import inspect
>>> from datetime import datetime
>>> now = datetime.now()
>>> inspect.getmembers(now)
[('__add__', <method-wrapper '__add__' of datetime.datetime object at 0x105754ee0>),
...
('weekday', <built-in method weekday of datetime.datetime object at 0x105754ee0>), ('year', 2014)]

您还可以传递一个谓词参数,这将有助于过滤列表,例如请参阅:

关于python - 在 Python 中列出类属性及其类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23706162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com