我是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