我是python的初学者。我无法理解继承和__init__()
。
class Num:
def __init__(self,num):
self.n1 = num
class Num2(Num):
def show(self):
print self.n1
mynumber = Num2(8)
mynumber.show()
结果: 8
还行吧。但我替换Num2
为
class Num2(Num):
def __init__(self,num):
self.n2 = num*2
def show(self):
print self.n1,self.n2
结果: Error. Num2 has no attribute "n1".
在这种情况下,如何Num2
访问n1
?
__init__
在派生类中定义方法时会继承该方法。这是因为“如果在类中找不到请求的属性,则搜索将继续查找基类。” (doc)