我正在尝试访问班级(即下面的a_dict
)的“父级”(mro中的第一个)的 dict :
class A():
a = 1
class B(A):
b = 2
@classmethod
def print_dict(cls):
b_dict = cls.__dict__.items()
print(b_dict)
# The following line generates this error:
# AttributeError: 'getset_descriptor' object has no attribute 'items'
a_dict = super(cls, cls).__dict__.items()
print(a_dict)
foo = B()
foo.print_dict()
b_dict
已打印。
a_dict
失败。从我读过的书中,super
代表了方法,但是在这种情况下,它不是方法,而是属性。我可以将其硬编码为:
a_dict = A.__dict__.items()
但是这违背了目的。一个人如何指代父类的 dict ?