Python知识点笔记-面向对象进阶篇
生活随笔
收集整理的這篇文章主要介紹了
Python知识点笔记-面向对象进阶篇
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
python知識點范圍:magic method魔術(shù)方法
- magic method魔術(shù)方法是前后有兩個下劃線的屬性;
- 創(chuàng)建對象的方法def __new__(cls ),重寫的話可能需要一個星號和兩個星號的參數(shù);
- 銷毀對象用__del__(),由python回收機制調(diào)用;
- 對象之所以可以比較是因為有運算符魔術(shù)方法屬性,只要能比較的都有的;
- 比較運算符__cmp__(self, other)【eq, lt, gt】
- 數(shù)字運算符__add__(self, other)【sub, mul, div】
- 邏輯運算符__or__(self, other)【and】
- python運行首先要經(jīng)過ebal這個函數(shù),它只能識別機器字符串,用__repr__這個魔術(shù)方法來轉(zhuǎn)化;
- __str__, __unicode__方法也是返回字符串的,str是直接打印對象時調(diào)用的;
- __dir__可以控制調(diào)用dir()時要返回的內(nèi)容;
- 大部分的內(nèi)建方法都是有對應(yīng)魔術(shù)方法的,我們自己可以多多總結(jié);
- __setattr__每次設(shè)置時都會調(diào)用;
- __getattr__, getattribute__查詢魔術(shù)方法,每次沒訪問到和訪問時會調(diào)用;
- 設(shè)置和查詢魔術(shù)方法要防止無限遞歸,容易出錯;
- 遞歸1萬次會報錯;
- python本身沒有訪問控制,加了雙下劃線實際只是改了名字,我們?nèi)匀豢梢栽L問到;
- __delattr__刪除時會訪問到;
- python2里什么都不繼承算是老式類,缺少一些功能;
總結(jié)
以上是生活随笔為你收集整理的Python知识点笔记-面向对象进阶篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 知识点笔记:走进面向对象
- 下一篇: websocket python爬虫_p