亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python實現單例模式的5種方法

瀏覽:3日期:2022-06-16 18:21:50
目錄基本介紹優缺點Python實現方式1,元類實現:方式2,繼承實現:方式3,裝飾器實現:方式4,模塊實現:方式5,@classmethod實現單例模式:基本介紹

一個對象只允許被一次創建,一個類只能創建一個對象,并且提供一個全局訪問點。

單例模式應該是應用最廣泛,實現最簡單的一種創建型模式。

特點:全局唯一,允許更改

優缺點

優點:

避免對資源的多重占用,如寫入文件操作 節省內存 防止命名空間被污染

缺點:

沒有接口,不能繼承,與單一職責原則沖突,一個類應該只關心內部邏輯,而不關心外面怎么樣來實例化Python實現方式1,元類實現:

class MetaClass(type): def __call__(self, *args, **kwargs):'''self : class Singleton'''if not hasattr(self, 'ins'): insObject = super(__class__, self).__call__(*args, **kwargs) setattr(self, 'ins', insObject)return getattr(self, 'ins')class Singleton(object, metaclass=MetaClass): passif __name__ == '__main__': ins = Singleton() print(id(ins)) ins = Singleton() print(id(ins))方式2,繼承實現:

class ParentClass: def __new__(cls, *args, **kwargs) -> object:'''cls : class Singeton'''if not hasattr(cls, 'ins'): insObject = super(__class__, cls).__new__(cls, *args, **kwargs) setattr(cls, 'ins', insObject)return getattr(cls, 'ins')class Singleton(ParentClass): passif __name__ == '__main__': ins = Singleton() print(id(ins)) ins = Singleton() print(id(ins))方式3,裝飾器實現:

def warpper(clsObject): def inner(*args, **kwargs):if not hasattr(clsObject, 'ins'): insObject = clsObject(*args, **kwargs) setattr(clsObject, 'ins', insObject)return getattr(clsObject, 'ins') return inner@warpperclass Singleton: passif __name__ == '__main__': ins = Singleton() print(id(ins)) ins = Singleton() print(id(ins))方式4,模塊實現:

- foo.py --> ins = Singleton()- bar.py --> from foo import ins方式5,@classmethod實現單例模式:

class Singleton: @classmethod def getSingletonInstanceObject(cls, *args, **kwargs):if not hasattr(cls, 'ins'): insObject = cls(*args, **kwargs) setattr(cls, 'ins', insObject)return getattr(cls, 'ins')if __name__ == '__main__': ins = Singleton.getSingletonInstanceObject() print(id(ins)) ins = Singleton.getSingletonInstanceObject() print(id(ins))

到此這篇關于Python實現單例模式的5種方法的文章就介紹到這了,更多相關Python 單例模式內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲精品第五页中文字幕 | 日韩黄色在线视频 | 免费高清a级毛片在线播放 免费高清小黄站在线观看 免费高清不卡毛片在线看 免费高清毛片 | 亚洲精品午夜国产va久久成人 | 一级黄色片在线观看 | 调教套上奶牛榨乳器喷奶水 | 激情亚洲视频 | 六月丁香激情网 | 一区二区三区国产精品 | 亚洲国产精品国产自在在线 | 国产性生大片免费观看性 | 免费人成网站线观看合集 | 不卡国产视频 | a级黄色毛片三个搞一 | 青青青青啪视频在线观看 | 亚洲国产日韩无在线播放 | yyyyyy高清成人观看 | 一色屋精品亚洲香蕉网站 | 日韩av成人 | 国产一区二区三区久久 | xxxx性×xx| 国产成人精品一区二区免费视频 | 亚洲成a人v天堂网 | 国产乱子精品免费视观看片 | 精品国产成人三级在线观看 | 亚洲精品午夜一区二区 | 毛片大片 | 未成人做爰视频www 未成人禁止视频高清在线观看 | 黄色一级小视频 | 精品美女在线 | 国产精品无卡无在线播放 | www一级片 | 91福利国产在线观看 | 久久免费精品视频在线观看 | 4438成人成人高清视频 | 一区二区三区欧美日韩 | 成人久久久精品乱码一区二区三区 | 亚洲一区二区三区久久精品 | 91精品福利老司机在线观看 | 国产精品vv在线 | 一级片视频免费观看 |