def singleton (cls,*args,**kw)
时间: 2023-07-23 07:30:32 浏览: 93
单例 模式 singleton
这是一个装饰器函数,用于将一个类变成单例模式。装饰器函数接受一个类作为参数,返回一个新的类。新的类只能被实例化一次,多次实例化会返回同一个对象。
下面是该函数的实现:
```
def singleton(cls):
instances = {}
def get_instance(*args, **kw):
if cls not in instances:
instances[cls] = cls(*args, **kw)
return instances[cls]
return get_instance
```
使用该装饰器函数可以将一个类变成单例模式,例如:
```
@singleton
class MyClass:
pass
```
这样,MyClass 就只能被实例化一次。多次实例化会返回同一个对象。
阅读全文