日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

面向对象编程05

發(fā)布時間:2024/9/30 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象编程05 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

19、new()

當使用“類名([實參])”創(chuàng)建實例對象,python解釋器的主要處理過程包括兩大步:

1、調用特殊方法__new__()創(chuàng)建實例對象
首先會查找該類對象是否實現(xiàn)了特殊方法__new__(),如果沒有實現(xiàn),則去其父類中依次查找,直到類對象object。
2、調用特殊方法__init__()對創(chuàng)建的實例對象進行初始化
new()返回的實例對象會作為實參被自動傳遞給__init__()的第一個形參self。

class Parent(object):def __new__(cls,*args,**kwargs):passclass Child(Parent):def __init__(self,name):pass

class Parent(object):def __new__(cls,*args,**kwargs): ##cls接收的是子類Childprint("父類的 __new__()被調用,其形參cls對應實參的id:",id(cls))obj = super().__new__(cls)print("創(chuàng)建的實例對象的id:",id(obj))return objclass Child(Parent):def __init__(self,name):print("子類的 __init__()被調用,其形參self對應實參的id:",id(self))self.name = nameChild = Child("Mike")###父類的 __new__()被調用,其形參cls對應實參的id: 2469267381944 ###創(chuàng)建的實例對象的id: 2469287971864 ###子類的 __init__()被調用,其形參self對應實參的id: 2469287971864

20、getitem()、setitem()、delitem()

對于自定義類對象的實例對象,在默認情況下,是不能像列表和字典那樣使用中括號語法來操作數(shù)據的。

如果想讓自定義類對象的實例對象的實例對象可以像列表和字典那樣,使用中括號語法來操作數(shù)據,必須在自定義類對象中實現(xiàn)以下特殊方法:

1、getitem(self,key) :當執(zhí)行操作obj[key]時,會自動調用該特殊方法。
2、setitem(self,key,value) :當執(zhí)行操作obj[key] = value時,會自動調用特殊方法。
3、delitem(self,key) :當執(zhí)行操作del obj[key]時,會自動調用該特殊方法。

class MyDict(object):def __init__(self):self.data =()def __getitem__self(self,key):return self.data[key]def __setitem__(self,key,value):self.data[key]=valuedef __delitem__(self,key):del self.data[key]

21、call()與callable()

如果在類對象中實現(xiàn)特殊方法__call__(),那么就可以像調用函數(shù)一樣直接調用這個類對象的實例對象,從而自動調用特殊方法__call__()。

內置函數(shù)callable用于判斷指定對象是否是可調用的。
除了函數(shù)對象是可調用的之外,對于實現(xiàn)了特殊方法__call__()的類對象,其實例對象也是可調用的。

22、doc()與__dict__()

調用內置函數(shù)dir得到的類對象的所有屬性中,有一個特殊屬性叫__doc__(),用于表示類對象的文檔字符串。

一、什么是類對象的文檔字符串(docstring)
與函數(shù)的文檔字符串類似,位于類對象的第一行的字符串被稱為類對象的文檔字符串,通常用三個引號表示。
類對象的文檔字符串是對類對象的功能的簡要描述。

二、訪問類對象的文檔字符串
通過類對象的特殊屬性__doc__()可以訪問類對象的文檔字符串。
調用內置函數(shù)help()得到的幫助信息中會包含類對象的文檔字符串。

class MyClass(object):"""這是類對象的文檔字符串123"""pass

對于指定的類對象或實例對象,可以訪問特殊屬性__dict__()獲得該類對象或實例對象所綁定的所有屬性和方法的字典。其中,字典中的鍵為屬性名或方法名。

class MyClass(object):ca='ca'def __init__(self):self.ia='ia'def im(self):pass@classmethoddef cm(cls):pass@staticmethoddef sm():passprint(dir(MyClass))

總結

以上是生活随笔為你收集整理的面向对象编程05的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。