风火编程--python单例模式, 支持主动更新

python3, 支持更新的单例模式

直接上代码

# coding: utf-8

from threading import Lock
class A():
    _instance_lock = Lock()
    __instance = None
    __has_initialization = False
    def __new__(cls, *args, **kwargs):
        with cls._instance_lock:
            if not cls.__instance:
                cls.__instance = object.__new__(cls)
        return cls.__instance

    def __init__(self, name):
        if not A.__has_initialization:
            self.name = name
           A.__has_initialization = True

    @classmethod
    def rebuild(cls):
        cls.__instance = None
        cls.__has_initialization = False

if __name__ == '__main__':
    a = A("风火")
    b = A("windfire")
    print(a.name)
    print(b.name)
    A.rebuild()
    c = A("77245741")
    print(c.name)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值