1. 程式人生 > >Python3【類】繼承

Python3【類】繼承

繼承是面向物件的一個基本準則,繼承允許我們在兩個或者更多的類之間建立一種關係。

基本繼承

從技術上將,每一個Python類的建立都是用了繼承,所有的類都是一個叫做object的特殊類的子類。不具體指明的時候,自動繼承過來。當然,亦可以通過下面的方式現實的從object類繼承。
class MyClass(object):
語法:
在定義一個新的類的時候,在類名的括號裡面包含父類的名字就可以了。這樣,這個新定義的類,就可以實現父類的功能。

擴充套件內建類

例如,我們想要把聯絡人新增到列表裡。同時西門想通過名字實現搜尋。那麼我們需要給列表新增一個搜尋功能。例如,下面把list這個內建類擴充套件了,添加了搜尋功能。

class ContactList(list):
    def search(self,name):
        '''Return all contacts that contain the search value
        in their name.'''
        matching_contacts = []
        for contact in self:
            if name in contact.name:
                matching_contacts.append(contact)
            return
matching_contacts class Contact: all_contacts=ContactList() def __init__(self, name, email): self.name = name self.email = email self.all_contacts.append(self)

重寫方法

當我們通過繼承父類可以實現很多功能,但是當我們想要改變其中的一些功能的時候,就可以通過重寫來實現。
重寫和其他語言裡面是差不多的。在子類裡面有一個與父類名字相同的方法來覆蓋父類的這個方法。例如,通過重寫初始化函式,增加一個電話號碼屬性。

class Friend(Contact):
    def __init__(self,name email,phone):
        self.name = name
        self.email = email
        self.phone = phone

多重繼承

從多個父類繼承。可以訪問所有父類的功能。但是通常 不推薦使用。

多型

多型,即有多種形態。這意味著即便不知道變數指向的是哪種物件,也能夠對其執行操作,且操作將隨著物件的型別變化而變化。
通常,沒一個型別都會自己定義對應的方法。例如,在C++中,vector,string,queue等等的STL類,都自己定義了size()這個功能,我們在使用的時候,無需知道物件到底是什麼,他們都可以直接使用這個方法。
在python中也是一樣的道理。不同的類都自己定義對應的方法。