我有以下代码:
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
答案 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
函数。