我是python的执行者。我无法理解继承和__init__()
。Python中的继承和初始化方法
class Num:
def __init__(self,num):
self.n1 = num
class Num2(Num):
def show(self):
print self.n1
mynumber = Num2(8)
mynumber.show()
结果:8
这是可行的。 Error. Num2 has no attribute "n1".
在这种情况下,怎么能Num2
访问n1
:但是我
class Num2(Num):
def __init__(self,num):
self.n2 = num*2
def show(self):
print self.n1,self.n2
结果替换Num2
?
您的引用不足以解释为什么在派生类中未定义'__init__'方法时,它会被继承。这是因为_“如果在该类中没有找到请求的属性,搜索将继续查找基类。”_(doc) – eyquem 2011-08-14 22:08:22
对不起......基本上,继承是如何工作的......如果继承一个类,你得到整个包,所以,超类中的所有东西都存在于子类中。但是,如果你重新定义了一个方法,它会被覆盖......这就是你的代码。 – coya 2017-05-05 19:46:09