在派生類中定義__init__()方法時,不會自動呼叫基類的__init__()方法。
例如:
class執行上面的**,會彈出相關的異常資訊。fruit:
def__init__(self,color='綠色'
): fruit.color=color
defharvest(self):
print("
水果原來是:
"+fruit.color+"的"
)class
def__init__
(self):
print("
我是蘋果
")
因此,要讓派生類呼叫基類的__init__()方法進行必要的初始化,需要在派生類使用super()函式呼叫基類的__init__()方法。
例如:在上面的例子中,修改為:
classfruit:
def__init__(self,color='綠色'
): fruit.color=color
defharvest(self):
print("
水果原來是:
"+fruit.color+"的"
)class
def__init__
(self):
print("
我是蘋果")
super().
__init__
()
classfruit: #定義水果類(基類)
def__init__(self,color='綠色'
): fruit.color=color #定義類屬性
defharvest(self,color):
print("
水果是:
"+self.color+"的"
) #輸出的是形式引數color
print("
水果已經收穫")
print("
水果原來是:
"+fruit.color+"的"
) #輸出的是類屬性color
class
color="紅色"
def__init__
(self):
print("
我是蘋果")
super().
__init__
() #呼叫基類的__init__()方法
class
sapodilla(fruit): #定義人參果類(派生類)
def__init__
(self,color):
print("
我是人參果")
super().
__init__
(color) #呼叫基類的__init__()方法
defharvest(self,color):
print("
人參果實:
"+color+"的"
) #輸出形式引數color
print("
人參果已經收穫")
print("
人參果原來是:
"+fruit.color+"的"
) #輸出的是類屬性color
sapodilla=sapodilla("白色"
)sapodilla.harvest(
"金黃色帶紫色條紋
Python合集之物件導向 二
在python中,類表示具有相同屬性和方法的物件集合,在使用類時,需要先定義類,然後再建立類的例項,通過類的例項就可以訪問類中的屬性和方法了。在python中,類的定義使用class關鍵字來實現,語法格式如下 class classname 類的幫助資訊 statement 引數說明 classna...
python之物件導向
類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...
python之物件導向
python中一切皆物件 class 定義的類屬於類物件 obj1 屬於例項物件 在程式執行時,類同樣會載入到記憶體,類物件在記憶體中只有乙份,使用乙個類可以建立出很多例項物件 除了封裝例項的屬性和方法外,類物件還可以擁有自己的屬性和方法 類屬性和例項屬性 類屬性就是給類物件中定義屬性,通常用來記錄...