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