擴充套件內建物件
向內建型別新增新功能是繼承關係的有趣應用。
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"
)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...