可能重复:
检查 python 类属性
我需要得到一个干净的列表,列出我在一个类中定义的所有属性的名称。假设我有下一节课:
class MyClass(object):
attr1 = None
attr2 = 2
attr3 = "Hello world"
我想知道是否有什么可以让我做的事情:
>>> some_method(MyClass) # <- check class
['attr1', 'attr2', 'attr3']
>>> my_class = MyClass()
>>> some_method(my_class) # <- check instance of MyClass
['attr1', 'attr2', 'attr3']
我不能依赖内置方法dir
,因为它还返回属性,如__class__
,__getattr__
以及该类具有的任何方法。我的意思是,我只需要获取类中定义的属性,而不是内置属性,也不需要方法。
这甚至可能吗?或者有什么方法可以知道哪些属性是内置的,哪些是我定义的,以便我可以遍历列表dir
返回并进行一些操作filter
?
提前感谢您的帮助!!