如何在Python中检查给定类中的类属性是定义还是派生?
下面的代码显示了是否在类A和B中定义或派生了属性’foo’。
示例
class A:
foo = 1
class B(A):
pass
print A.__dict__
#我们看到在类A的__dict__中有属性foo。因此,foo在类A中被定义。
print hasattr(A, 'foo')
#我们看到类A有这个属性,但它被定义了。
print B.__dict__
#我们看到在类B的__dict__中没有属性foo。因此,foo在类B中未定义。
print hasattr(B, 'foo')
#我们看到类B有这个属性,但它是派生的
输出
{'__module__': '__main__', 'foo': 1, '__doc__': None}
True
{'__module__': '__main__', '__doc__': None}
True