class derivedclassname(baseclassname):
子類 父類
如果子類中定義與父類同名的方法或屬性,則會自動覆蓋父類對應的方法或屬性,父類中的方法不受影響
1、呼叫未繫結的父類方法
classa():
def__init__
(self):
print("
進入a…")
print("
離開a…")
class
b(a):
def__init__
(self):
print("
進入b…")
a.__init__
(self)
print("
離開b…")
2、使用super函式
classa():
def__init__
(self):
print("
進入a…")
print("
離開a…")
class
b(a):
def__init__
(self):
print("
進入b…")
super.
__init__
(self)
print("
離開b…")
super函式可以在你沒有給定任何基類的名字時,它會自動幫你找出所有基類以及對應的方法
class derivedclassname(base1,base2,base3):
classa():
def__init__
(self):
print("
進入a…")
print("
離開a…")
class
b(a):
def__init__
(self):
print("
進入b…")
a.__init__
(self)
print("
離開b…")
class
c(a):
def__init__
(self):
print("
進入c…")
a.__init__
(self)
print("
離開c…")
class
d(b, c):
def__init__
(self):
print("
進入d…")
b.__init__
(self)
c.__init__
(self)
print("
離開d…")
>>> d =d()
進入d…
進入b…
進入a…
離開a…
離開b…
進入c…
進入a…
離開a…
離開c…
離開d…
#a被呼叫了兩次
解決方法:使用super函式
classa():
def__init__
(self):
print("
進入a…")
print("
離開a…")
class
b(a):
def__init__
(self):
print("
進入b…")
super().
__init__
()
print("
離開b…")
class
c(a):
def__init__
(self):
print("
進入c…")
super().
__init__
()
print("
離開c…")
class
d(b, c):
def__init__
(self):
print("
進入d…")
super().
__init__
()
print("
離開d…")
>>> d =d()
進入d…
進入b…
進入c…
進入a…
離開a…
離開c…
離開b…
離開d…
python3類和物件
類的定義和例項化 python定義簡單類如下。class car object pass c1 car 我們定義了乙個car類,其中什麼方法也沒有實現。c1是我們實力化的類 car,成為了乙個物件 可變引數 列表,字典,set 不可變引數 string,number,元組 全域性變數 宣告在函式外,...
python3 類的繼承
基本語法 class derivedclassname baseclassname1 1 需要注意圓括號中父級類的順序,若是父級類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋 即方法在子類中未找到時,從左到右查詢父級類中是否包含方法。示例 class a object pass ...
Python3 類的繼承
coding utf 8 物件導向程式設計的三個特點 封裝 繼承 多型 函式是封裝 的基本單位,類和物件的封裝是屬於更高階的封裝方式 在類中經常會宣告一些物件屬性,用來儲存資料的,在類中宣告的函式,是用來運算元據的,不同的功能可以封裝成不同的函式 繼承 特點 1.子類繼承父類,子類擁有父類的所有屬性...