Files
studimi_zheni/Api/singleton.py

16 lines
462 B
Python

class Singleton:
def __init__(self, decorated):
self._decorated = decorated
def instance(self):
try:
return self._instance
except AttributeError:
self._instance = self._decorated()
return self._instance
def __call__(self):
raise TypeError('Singletons must be accessed through `instance()`.')
def __instancecheck__(self, inst):
return isinstance(inst, self._decorated)