创建型模式-单例模式(使用魔法方法__new__实现)
# 使用魔法方法__new__实现单例模式
# 线程锁:防止创建多个实例
# 双重检查:实例创建后,防止重复加锁占用资源
from threading import Lock
class Singletion():
_local = Lock()
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
with cls._local:
if not cls._instance:
cls._instance = super(Singletion, cls).__new__(cls, *args, **kwargs)
return cls._instance
if __name__ == "__main__":
for item in range(10):
b = Singletion()
print(id(b))

浙公网安备 33010602011771号