我必须将父类中存在的所有变量添加到子类的一个列表中。然而,父类中的所有变量都不是强制性的。
有什么办法可以弄清楚父类中是否存在变量?
>>> 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
返回,如果是,则可以断定该属性在父类中不存在。
如果您知道要查找的属性,则可以将它们与dir(parent class)