eis/py/comlib/decor/singleton.py

24 lines
514 B
Python

def singleton(cls):
instances = {}
def get_instance(*args, **kwargs):
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return get_instance
# 示例使用
# @singleton
# class Singleton:
# def __init__(self, value):
# self.value = value
# singleton1 = Singleton(1)
# singleton2 = Singleton(2)
# print(singleton1.value) # 输出: 1
# print(singleton2.value) # 输出: 1
# print(singleton1 is singleton2) # 输出: True