如何使用Child对象访问在Parent Class中初始化的变量?

时间:2014-10-26 10:46:22

标签: python class

我有以下代码:

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

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

AA = aa()
BB = bb()

我正在尝试使用Child对象访问在Parent类(aa)中初始化的变量,如下所示。 请建议正确的方法,因为我这样做会出错:

(如果有人能指出我在Python中进行子类化的好文档,那就太好了。)

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

2 个答案:

答案 0 :(得分:3)

您必须从超类中调用__init__。它不会被隐式调用。

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

答案 1 :(得分:2)

您需要显式初始化超类。修改__init__的{​​{1}}方法,使其如下所示:

bb

然后应该有效:

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

关于使用超类的文档,请参阅文档中的super函数。