日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:40日期:2022-07-10 10:21:09

一、classmethod裝飾器

# 全局變量ip = ’192.168.13.98’port = ’3306’class MySQL: __instance = None def __init__(self, ip, port): self.ip = ip self.port = port @classmethod def instance(cls, *args, **kwargs): if args or kwargs: cls.__instance = cls(*args, **kwargs) return cls.__instance obj1 = MySQL.instance(ip, port)obj2 = MySQL.instance()obj3 = MySQL.instance()print(obj1)print(obj2, obj2.__dict__)print(obj3, obj3.__dict__)

輸出結果

<main.MySQL object at 0x058D6F30><main.MySQL object at 0x058D6F30> {’ip’: ’192.168.13.98’, ’port’: ’3306’}<main.MySQL object at 0x058D6F30> {’ip’: ’192.168.13.98’, ’port’: ’3306’}

二、類的裝飾器

def singlegon(cls): _instance = cls(ip, port) def wrapper(*args, **kwargs): if args or kwargs: return cls(*args, **kwargs) return _instance return wrapper @singlegonclass MySQL1: def __init__(self, ip, port): self.ip = ip self.port = port obj1 = MySQL1()obj2 = MySQL1()obj3 = MySQL1(’1.1.1.3’, 8080)print(obj1)print(obj2, obj2.__dict__)print(obj3, obj3.__dict__)

運行結果

<main.MySQL1 object at 0x04C102B0><main.MySQL1 object at 0x04C102B0> {’ip’: ’192.168.13.98’, ’port’: ’3306’}<main.MySQL1 object at 0x04C10310> {’ip’: ’1.1.1.3’, ’port’: 8080}

三、元類

class Mymetaclass(type): def __init__(self, class_name, class_bases, class_dic): super().__init__(class_name, class_bases, class_dic) self.__instance = self(ip, port) def __call__(self, *args, **kwargs): if args or kwargs: obj = self.__new__(self) self.__init__(obj, *args, **kwargs) self.__instance = obj return self.__instance class MySQL2(metaclass=Mymetaclass): def __init__(self, ip, port): self.ip = ip self.port = port obj1 = MySQL2()obj2 = MySQL2()obj3 = MySQL2(’1.1.1.3’, 80)print(obj1)print(obj2, obj2.__dict__)print(obj3, obj3.__dict__)

運行結果

<main.MySQL2 object at 0x04D003B0><main.MySQL2 object at 0x04D003B0> {’ip’: ’192.168.13.98’, ’port’: ’3306’}<main.MySQL2 object at 0x04D003D0> {’ip’: ’1.1.1.3’, ’port’: 80}

四、模塊導入

# instance.py class MySQL: def __init__(self, ip, port): self.ip = ip self.port = port ip = ’192.168.13.98’port = 3306instance = MySQL(ip, port) # 測試代碼import os, sys sys.path.append(os.path.dirname(os.path.dirname(__file__)))from test import instance obj1 = instance.instanceobj2 = instance.instanceobj3 = instance.MySQL(’1.1.1.3’, 80)print(obj1)print(obj2, obj2.__dict__)print(obj3, obj3.__dict__)

運行結果

<day30.instance.MySQL object at 0x052B0AB0><day30.instance.MySQL object at 0x052B0AB0> {’ip’: ’192.168.13.98’, ’port’: 3306}<day30.instance.MySQL object at 0x052B03F0> {’ip’: ’1.1.1.3’, ’port’: 80}

五、重寫__new__()

class MySQL3(object): __instance = None __first_init = True def __init__(self, ip, port): if self.__first_init: self.ip = ip self.port = port self.__first_init = False def __new__(cls, *args, **kwargs): if not cls.__instance: cls.__instance = object.__new__(cls) return cls.__instance obj1 = MySQL3(ip, port)obj2 = MySQL3(ip, port)obj3 = MySQL3(’1.1.1.3’, 80)print(obj1)print(obj2, obj2.__dict__)print(obj3, obj3.__dict__)

運行結果

<main.MySQL3 object at 0x059603F0><main.MySQL3 object at 0x059603F0> {’ip’: ’192.168.13.98’, ’port’: ’3306’, ’_MySQL3__first_init’: False}<main.MySQL3 object at 0x059603F0> {’ip’: ’192.168.13.98’, ’port’: ’3306’, ’_MySQL3__first_init’: False}

注:前四種可以實現單例模式,但都不是絕對單例模式,可以創建新的對象,但是第五種方式是絕對單例模式,全局只能真正創建一次對象

以上就是python 實現單例模式的5種方法的詳細內容,更多關于python 單例模式的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
肉色欧美久久久久久久免费看| 日韩精品午夜视频| 99riav1国产精品视频| 丰满少妇一区| 欧美日韩在线精品一区二区三区激情综合| 天堂va在线高清一区| 亚洲综合激情在线| 在线精品亚洲| 一区二区日韩免费看| 亚洲精品系列| 国产精品亚洲片在线播放| 久久亚洲人体| 美女久久99| 国产日韩欧美一区在线| 欧美天堂一区| 亚洲精品高潮| 成人羞羞在线观看网站| 国产精品丝袜在线播放| 欧美亚洲tv| 久久不卡日韩美女| 91亚洲自偷观看高清| 九九精品调教| 激情综合激情| 亚洲乱码一区| 久久av日韩| 久久激情婷婷| 日韩一区中文| 久久福利影视| 伊人久久亚洲影院| 日本久久综合| 综合精品一区| 欧美日韩激情| 精品欧美日韩精品| 欧美中文一区二区| 国产美女撒尿一区二区| 日韩中文首页| 国产欧美另类| 亚洲va久久| 私拍精品福利视频在线一区| 欧美日韩一区二区三区不卡视频 | 亚洲一区国产一区| 午夜欧美视频| 红桃视频欧美| 天堂va蜜桃一区二区三区| 亚洲福利精品| 日本不卡高清视频| 亚洲精品在线a| 日韩高清不卡一区二区| 精品精品99| 香蕉久久夜色精品国产| 国产劲爆久久| 亚洲成人精选| 国产美女精品视频免费播放软件| 亚洲一区资源| 日韩黄色在线观看| 自拍自偷一区二区三区| 日韩av中文在线观看| 欧美国产免费| 国产欧美一级| 国产精品色在线网站| 日本精品在线中文字幕| 一区二区亚洲精品| 欧洲一区二区三区精品| 国产欧美69| 麻豆mv在线观看| 成人在线免费观看91| 成人高清一区| 蜜桃一区二区三区| 亚洲精品高潮| 国产精选一区| 久久国产直播| 国产亚洲欧美日韩精品一区二区三区| 1024精品久久久久久久久| 欧美专区一区二区三区| 国产精品97| 国产欧美日韩在线一区二区 | 亚洲大全视频| 日韩不卡一二三区| 日韩网站中文字幕| 欧美亚洲免费| 美女网站久久| 久久久久美女| 精品理论电影在线| 欧美日韩午夜电影网| 国产一区导航| 欧美1级日本1级| 成人精品久久| 精品久久一区| 精品在线99| 久久久久伊人| 国产欧美一区二区三区国产幕精品 | 成人日韩精品| 国产精品毛片| 日韩精品91| 国产精品白丝一区二区三区| 日韩专区欧美专区| 99国产精品视频免费观看一公开 | 亚洲色图国产| 亚洲欧美高清| 精品入口麻豆88视频| 日韩久久视频| 久久性天堂网| 亚洲欧美日韩精品一区二区| 久久网站免费观看| 日韩欧美精品综合| 福利一区二区免费视频| 精品久久一区| 日韩欧美二区| 不卡视频在线| 亚洲一区观看| 亚洲在线观看| 亚洲人成亚洲精品| 人人爱人人干婷婷丁香亚洲| 日本麻豆一区二区三区视频| 国产午夜精品一区在线观看| 国产伦理一区| 精品久久视频| 五月天久久久| 日本色综合中文字幕| 麻豆精品久久久| av在线日韩| 男女男精品网站| 国产精品综合| 999久久久国产精品| 免费在线观看精品| 日本三级亚洲精品| 国产在线观看91一区二区三区| 日韩精品专区| 亚洲最新av| 91欧美日韩| 中文不卡在线| 国产66精品| 国产精品高清一区二区| 欧美一级鲁丝片| 日韩中文字幕| 日韩成人a**站| 国产精品久久久免费| 国产精品久久久久77777丨| 欧美freesex黑人又粗又大| 精精国产xxxx视频在线播放 | 国产极品模特精品一二| 国产日韩欧美三区| 国产精品久久久久久久久久白浆 | 精品三级av在线导航| 国产精品13p| 久久国产电影| 亚洲色图网站| 久久国内精品自在自线400部| 国产日韩欧美一区在线| 国产成人免费精品| 日韩精品水蜜桃| 国产视频亚洲| 7777精品| 四虎成人av| 免费欧美一区| 日韩国产一二三区| 视频在线不卡免费观看| 99在线观看免费视频精品观看| 亚洲精品免费观看| 美女精品视频在线| 电影亚洲精品噜噜在线观看| 亚洲激情不卡| 欧美精品福利| 97精品国产福利一区二区三区| 久久国产影院| 日韩欧美另类中文字幕| 久久一区欧美| 婷婷丁香综合| 日韩精品第二页| 国产精品久久久久蜜臀| 影院欧美亚洲| 国产精品视频一区二区三区综合| 日本蜜桃在线观看视频| 免费精品视频| 麻豆精品蜜桃视频网站| 蜜臀av免费一区二区三区| 91精品日本| 久久精品国产www456c0m| 日本免费新一区视频| 捆绑调教美女网站视频一区| 国产主播一区| 久久福利在线| 在线亚洲观看| 精品视频一区二区三区在线观看| 亚洲大全视频| 麻豆国产精品777777在线| aa国产精品| 国产一区二区色噜噜| 一区在线视频观看| 精品视频久久| 日本在线不卡视频一二三区| 91一区二区| 日本午夜免费一区二区| 亚洲四虎影院| 日韩高清不卡一区| 欧美特黄视频| 国产91在线播放精品| 日韩精选在线| 婷婷综合亚洲| 国产盗摄——sm在线视频|