实现一个单例模式的装饰器,被该装饰器装饰的类都是单例模式
实现代码如下:在这里插入代码片
def decorate(cls):
"""cls为类,instance为类属性"""
cls.__instance=None
def wrapper(*args,**kwargs):
if not cls.__instance:
result = cls.__instance=cls(*args,**kwargs)
return result
return cls.__instance
return wrapper
@decorate # Demo=decorate(Demo)
class Demo:
pass
d = Demo()
print(d)
d1 = Demo()
print(d1)
d2 = Demo()
print(d2)