"""
使用装饰器实现单例模式
"""
def singleton(cls):
instances = {}
# 定义装饰器
def _singleton( *args, **kw):
# 增加新功能
if cls not in instances:
instances[cls] = cls(*args, **kw)
# 返回 函数func 保存旧功能
return instances[cls]
# 返回壮士器
return _singleton
@singleton
class MyClass(object):
a = 1
def __init__(self, x=0):
self.x = x
one = MyClass()
two = MyClass()
print(one)
print(two)
print(one is two)
one.a = 2
print(two.a)
Python--使用装饰器实现单例模式
最新推荐文章于 2023-03-24 20:05:22 发布