如何在Python中检查给定类中的类属性是定义还是派生?

如何在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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程