python单例模式的装饰器
from functools import wrapsdef singleton(cls):
instance = None
@wraps(cls)
def wrap(*args,**kwargs):
nonlocal instance
if instance is None:
instance = cls(*args,**kwargs) #args,kwargs是用于将参数传递到__init__中
return instance
return wrap
@singleton
class A:
pass
a = A()
a1 = A()
id(a)
id(a1)
页:
[1]