24 lines
514 B
Python
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
|