我有一个班级,我希望能够检查其成员并列出它们。但是,我只会将其子类化(在 C++ 中,这将是一个抽象类),因此我希望此方法也返回其子类中的成员。
这在 Python 中可能,甚至是一个好主意吗?跟进,如果没有inspect
模块,这可能吗?
像这样:
class A:
@staticmethod
def GetMembers():
return dict(vars(A))
class B(A):
FOO = 'foobar'
BAR = 'barfoo'
然而,测试表明:
>>> A.GetMembers()
{'__module__': '__main__', '__doc__': None, 'GetMembers': <staticmethod object at 0x02219BB0>}
>>> B.GetMembers()
{'__module__': '__main__', '__doc__': None, 'GetMembers': <staticmethod object at 0x02219BB0>}
>>> dict(vars(B))
{'__module__': '__main__', 'FOO': 'foobar', 'BAR': 'barfoo', '__doc__': None}
我想B.GetMembers()
包括FOO
并BAR
喜欢dict(vars(B))
。