如何使用子对象访问父类中初始化的变量?

2024-03-28 12:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

class aa(object):
    def __init__(self):
        self.height = 12

class bb(aa):
    def __init__(self):
        self.weight = 13

AA = aa()
BB = bb()

我试图访问在父类(aa)中初始化的变量,使用下面的子对象。 请建议正确的方法,因为我这样做会出错:

(如果有人能给我提供一个关于Python子类化的好文档,那就太好了。)

print AA.height # 12
print BB.height # Error

Tags: 对象代码selfobjectinitdefclassaa
2条回答

您需要显式初始化超类。编辑__init__bb方法,使其如下所示:

class bb(aa):
    def __init__(self):
        super(bb, self).__init__()  # Call the __init__ method of the superclass.
        self.weight = 13

然后它应该工作:

print AA.height  # 12
print BB.height  # 12

关于使用超类的文档,请参阅文档中的^{}函数。你知道吗

必须从超类调用__init__。不会隐式调用它。你知道吗

class bb(aa):
    def __init__(self):
        super(bb, self).__init__()
        self.weight = 13

相关问题 更多 >