日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象编程05

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

19、new()

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

1、調用特殊方法__new__()創建實例對象
首先會查找該類對象是否實現了特殊方法__new__(),如果沒有實現,則去其父類中依次查找,直到類對象object。
2、調用特殊方法__init__()對創建的實例對象進行初始化
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("創建的實例對象的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 ###創建的實例對象的id: 2469287971864 ###子類的 __init__()被調用,其形參self對應實參的id: 2469287971864

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

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

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

1、getitem(self,key) :當執行操作obj[key]時,會自動調用該特殊方法。
2、setitem(self,key,value) :當執行操作obj[key] = value時,會自動調用特殊方法。
3、delitem(self,key) :當執行操作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()

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

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

22、doc()與__dict__()

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

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

二、訪問類對象的文檔字符串
通過類對象的特殊屬性__doc__()可以訪問類對象的文檔字符串。
調用內置函數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的全部內容,希望文章能夠幫你解決所遇到的問題。

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