1

我必须将父类中存在的所有变量添加到子类的一个列表中。然而,父类中的所有变量都不是强制性的。

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

4

2 回答 2

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返回,如果是,则可以断定该属性在父类中不存在。

于 2013-06-24T08:46:31.007 回答
0

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

于 2013-06-24T08:45:37.377 回答