python实现单例模式
在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 MySingleton:
def __init__(self, param):
self.param = param
# 其他初始化代码
# 使用单例
a = MySingleton("example")
b = MySingleton("example")
# a和b将指向同一个对象,因为MySingleton是单例的
print(a is b) # 输出 True
这个装饰器singleton会创建一个字典instances来存储类的实例。每次尝试创建类的实例时,它都会检查该类是否已经在instances中。如果不在,它会创建一个新的实例并将其存储在字典中,然后返回这个实例。这确保了无论你创建多少次类的实例,它们都将是同一个对象。
单例模式
Mrterrific2024-06-11 16:16