如何验证python中父类中是否存在变量

时间:2013-06-24 08:41:57

标签: python-2.7

我必须将父类中存在的所有变量添加到子类的一个列表中。但是,父类中的所有变量都不是必需的。

有什么方法可以弄清楚父类中是否存在变量?

2 个答案:

答案 0 :(得分:1)

>>> class A(object):
...     pass
... 
>>> class B(A):
...     pass
... 
>>> B.__bases__
(<class '__main__.A'>,)
>>> getattr(B.__bases__[0],'x',False)
False

或者更多的理解:

class A(object):
    x = 5

class B(A):
    y = 6
    x = 7

print(getattr(B.__bases__[0],'y',False))
print(getattr(B.__bases__[0],'x',False))

输出

False
5
>>> 

因此,只需检查是否返回False,如果是,则可以断定父类中不存在该属性。

答案 1 :(得分:0)

如果您知道要查找的属性,可以将它们与dir(parent class)

进行匹配