日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python单例设计模式

發(fā)布時間:2025/6/17 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python单例设计模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(1)為什么使用設(shè)計模式?

  使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。

(2)單例設(shè)計模式概念

  讓類創(chuàng)建的對象只有唯一的一個實例,即每次執(zhí)行? 類名() 返回的對象,內(nèi)存地址都是相同的。

(3)__new__與__init__方法的作用:

  使用 類名() 創(chuàng)建對象時,python解釋器首先會調(diào)用 __new__ 方法為對象分配內(nèi)存空間,該方法為基類object內(nèi)置的靜態(tài)方法,一般無需手動調(diào)用。

? ? ? ? __new__方法的作用有兩個:①為對象分配內(nèi)存空間;②返回對象引用。

   __init__方法的作用有兩個:①對象初始化;②定義實例屬性。

(4)如何實現(xiàn)單例設(shè)計模式?

  實現(xiàn)單例設(shè)計模式,其實就是重寫object基類的內(nèi)置靜態(tài)方法__new__,實現(xiàn)每次調(diào)用?類名()返回的對象的內(nèi)存地址不變。

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("創(chuàng)建對象,分配空間") 8 cls.instance = super().__new__(cls) # 一定要重新調(diào)用父類的__new__方法,并添加參數(shù)cls,表示當(dāng)前調(diào)用的類 9 return cls.instance #返回對象的引用,解釋器才會繼續(xù)調(diào)用__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)

?

? ? ? ? ? ? ? ? ? ? ?

轉(zhuǎn)載于:https://www.cnblogs.com/clearlove4396/p/11442848.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Python单例设计模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。