python進階之魔術方法詳解
一、三個內置函數
1、@classmethod
–類名.屬性名
2、@staticmethod
–類名.屬性名
3、@property
–設置隻讀屬性,方法變屬性,別人不易篡改,調用:類名(). 屬性名
二、雙下劃線開頭和結尾的方法,叫魔術方法。
1、一個類對象,在__init__初始化之前,還有__new__方法,這裡要重寫__new__方法,要調用父類的new方法,且將new方法創建的對象返回,即object. new(cls),其中cls代表的是類對象本身(MyClass)。否則無返回值運行報錯。
2、單例模式
這個__new__方法的應用之一,就是單例模式。
實現思路,藍色線一個回路。黃色線一個回路。
具體腳本如下。t2實例對象,沒有name屬性,但是也神奇的輸出與t1一致的結果。如此類推,其他也一樣,如果把這個. py文件導入其他文件B. py中,在B. py中創建其他實例對象t3,調用這個name屬性時就會輸出與t1一樣的結果。其次,t1、t2、t3的內存地址即id(t1)三個都是一樣的。最後,還可以設置其他屬性,且之間屬性共用。
這個就是單例模式,即實例化一次。(如果多次實例化,設置屬性,明顯會浪費資源,所以單例模式誕生瞭。)
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- Python學習之裝飾器與類的裝飾器詳解
- python類屬性學習深入講解
- Python中靜態方法,類方法,屬性方法使用方法
- python閉包和裝飾器你瞭解嗎
- python中的classmethod與staticmethod