Source code for pyqqq.utils.singleton
[docs]
def singleton(cls):
"""
Singleton 데코레이터
이 데코레이터는 클래스를 싱글톤으로 만들어주는 역할을 합니다.
Args:
cls (class): 싱글톤으로 만들 클래스.
Returns:
function: 싱글톤 클래스 인스턴스를 반환하는 함수.
Examples:
>>> @singleton
... class SingletonClass:
... def __init__(self, value):
... self.value = value
...
>>> instance1 = SingletonClass(1)
>>> instance2 = SingletonClass(2)
>>> instance1 is instance2
True
"""
instances = {}
def get_instance(*args, **kwargs):
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return get_instance