惊落一身雪 发表于 2025-1-22 19:31:58

python中单例模式

import threading





class Singleton(type):
    _instances = {}
    _instance_lock = threading.Lock()
    con = threading.Condition(_instance_lock)

    def __call__(cls, *args, **kwargs):
      key = '&&'.join()
      if key not in cls._instances:
            if cls._instance_lock.locked():
                cls.con.wait()
            cls._instance_lock.acquire()
            cls._instances = super(Singleton, cls).__call__(*args, **kwargs)
            cls._instance_lock.release()
            return cls._instances
            
      else:
            return cls._instances



class MyClass(metaclass=Singleton):
   
    def __init__(self,username):
      print(username)
      self.username = username
      
    def get_username(self):
      return self.username
   
a1 = MyClass("test")
print(a1.get_username())
a2 = MyClass("test")
print(a1.get_username())
   
debug可以发现,MyClass只实例化了一次
https://stackoverflow.com/questions/6760685/what-is-the-best-way-of-implementing-singleton-in-python

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: python中单例模式