Python单例设计模式
生活随笔
收集整理的這篇文章主要介紹了
Python单例设计模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(1)為什么使用設計模式?
使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。
(2)單例設計模式概念
讓類創建的對象只有唯一的一個實例,即每次執行? 類名() 返回的對象,內存地址都是相同的。
(3)__new__與__init__方法的作用:
使用 類名() 創建對象時,python解釋器首先會調用 __new__ 方法為對象分配內存空間,該方法為基類object內置的靜態方法,一般無需手動調用。
? ? ? ? __new__方法的作用有兩個:①為對象分配內存空間;②返回對象引用。
__init__方法的作用有兩個:①對象初始化;②定義實例屬性。
(4)如何實現單例設計模式?
實現單例設計模式,其實就是重寫object基類的內置靜態方法__new__,實現每次調用?類名()返回的對象的內存地址不變。
1 #! /usr/bin/env python 2 # -*- coding:utf-8 -*- 3 class MusicPlayer(object): 4 instance = None 5 def __new__(cls, *args, **kwargs): 6 if cls.instance is None: 7 print("創建對象,分配空間") 8 cls.instance = super().__new__(cls) # 一定要重新調用父類的__new__方法,并添加參數cls,表示當前調用的類 9 return cls.instance #返回對象的引用,解釋器才會繼續調用__init__方法初始化對象 10 11 def __init__(self): 12 print("播放器初始化") 13 14 if __name__ == '__main__': 15 piano = MusicPlayer() 16 print(piano) 17 18 guitar = MusicPlayer() 19 print(guitar)?
? ? ? ? ? ? ? ? ? ? ?
轉載于:https://www.cnblogs.com/clearlove4396/p/11442848.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Python单例设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM 参数及各部分含义(转)
- 下一篇: issubclass和isinstanc