我有一个python类层次结构如下:
class A:
def __init__(self):
self.a = 1
self.b = 2
class B(A):
def __init__(self):
super(B, self).__init__()
self.c = 3
现在当我做类似的事情时:
obj = B()
obj.__dict__
我明白了:
{'a': 1, 'b': 2, 'c': 3}
是否可以识别哪些属性属于父类,或者哪些属性仅属于子类?
答案 0 :(得分:2)
对于您的简单示例,您可以获得dict项目的区别:
print(obj.__dict__.items() - A().__dict__.items())
我想我们至少应该知道父类的名称:
print(obj.__dict__.items() - obj.__class__.__bases__[0]().__dict__.items())