面向对象编程05
19、new()
當使用“類名([實參])”創建實例對象,python解釋器的主要處理過程包括兩大步:
1、調用特殊方法__new__()創建實例對象
首先會查找該類對象是否實現了特殊方法__new__(),如果沒有實現,則去其父類中依次查找,直到類對象object。
2、調用特殊方法__init__()對創建的實例對象進行初始化
new()返回的實例對象會作為實參被自動傳遞給__init__()的第一個形參self。
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]時,會自動調用該特殊方法。
21、call()與callable()
如果在類對象中實現特殊方法__call__(),那么就可以像調用函數一樣直接調用這個類對象的實例對象,從而自動調用特殊方法__call__()。
內置函數callable用于判斷指定對象是否是可調用的。
除了函數對象是可調用的之外,對于實現了特殊方法__call__()的類對象,其實例對象也是可調用的。
22、doc()與__dict__()
調用內置函數dir得到的類對象的所有屬性中,有一個特殊屬性叫__doc__(),用于表示類對象的文檔字符串。
一、什么是類對象的文檔字符串(docstring)
與函數的文檔字符串類似,位于類對象的第一行的字符串被稱為類對象的文檔字符串,通常用三個引號表示。
類對象的文檔字符串是對類對象的功能的簡要描述。
二、訪問類對象的文檔字符串
通過類對象的特殊屬性__doc__()可以訪問類對象的文檔字符串。
調用內置函數help()得到的幫助信息中會包含類對象的文檔字符串。
對于指定的類對象或實例對象,可以訪問特殊屬性__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))總結
- 上一篇: 面向对象编程04
- 下一篇: 数据可视化01--笔记