python-類繼承

  • 當我們需要定義一個類(子類)這個類與已有的類(父類)相似,這時候可以用繼承的方法,子類擁有父類所有的屬性和方法,還可以添加新的屬性和方法。

格式如下:

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):
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章