- 當我們需要定義一個類(子類)這個類與已有的類(父類)相似,這時候可以用繼承的方法,子類擁有父類所有的屬性和方法,還可以添加新的屬性和方法。
格式如下:
class list1: #父類
def __init__(self):
self.x = 2
class Mylist(list): # Mylist繼承了list的所有屬性和方法
def __init__(self):
self.y = 5
pass
m = Mylist()
**注意:**當子類中存在與父類相同名稱的屬性或方法,子類實例化後會自動覆蓋父類中的對應方法(但不會刪除)
以上代碼中子類重寫了__init__
導致在子類中無法訪問變量x
m.x # 此法錯誤:因爲子類Mylist重新定義了init方法,覆蓋了父類中的x定義
如仍想使用,則有兩種方法:
1.調用未綁定的父類方法
class Mylist(list): # Mylist繼承了list的所有屬性和方法
def __init__(self):
list1.__init__(self)
self.y = 5
pass
2.使用super(推薦)
優點:當需要更改所繼承的父類時,只需要更改一個父類名即可
而方法一需要逐個修改
class Mylist(list): # Mylist繼承了list的所有屬性和方法
def __init__(self):
super().__init__() # super.需要的父類函數名
self.y = 5
pass
多重繼承(不推薦:易導致代碼混亂)
class 子類名(父1,父2,父3):