Python3物件導向 2 繼承(2)

2021-10-07 10:45:21 字數 839 閱讀 2379

擴充套件內建物件

向內建型別新增新功能是繼承關係的有趣應用。

class

contactlist

(list):

defsearch

(self,name)

:"返回所有符合名字的類"

matching_contacts=

for contact in self:

if name in contact.name:

return matching_contacts

class

contact

:"""建立乙個聯絡人的類用類變數維護一系列聯絡人資訊"""

all_contacts=contactlist(

)def

__init__

(self,name,email)

: self.name=name

self.email=email

c=contact(

"du"

,"[email protected]"

)print

(c.all_contacts.search(

"du"))

[<__main__.contact object at 0x00000220bab98ba8

>

]"名字為du的聯絡人物件的記憶體位址"

通常可以拓展的內建類有

object ,set ,list ,dict,fike str,int,float

例如set()繼承自object,因為括號裡上面也沒有預設繼承object,也可以說內建型別set是object 內建型別的擴充套件類

Python3物件導向 2 繼承(3)

重寫與super 如果想繼承聯絡人的朋友類的初始化方法中新增乙個phone的預設值怎麼辦呢?則需要用到重寫 任何方法都可以重寫 在子類中,方法名相同,引數不同即可。pythonclass contactlist list defsearch self,name 返回所有符合名字的類 matching...

Python3之物件導向的三大特性 繼承(2)

繼承和派生 什麼是繼承派生呢?繼承 從已有類中派生出新的類,具有原類的屬性和行為,並且可以新增新的行為 派生 從已有類中派生出新的類,在新類的基礎上新增新的屬性和行為 通俗的講 小明他 有一套房和一輛車,百年之後小明繼承了他 的房和車,這就是繼承,派生就是在繼承的房和成進行一定的改裝,或裝修。為什麼...

Python3物件導向 1 物件(2)

初始化物件 建構函式 建立物件 名 new 例如 class point def init self,x,y def init self,x 3,y 5 如果想讓引數x,y的值輸入不是必須的,就像函式引數寫法那樣 self.move x,y defmove self,x,y self.x x sel...