Python Code sample - everjs78/study GitHub Wiki
Singleton Meta Class
class SingleInstanceMetaClass(type):
instance = None
def __init__(cls, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
def __call__(cls, *args, **kwargs):
if cls.instance:
return cls.instance
cls.instance = cls.__new__(cls)
cls.instance.__init__(*args, **kwargs)
return cls.instance
@synchronized
def __new__(cls, *args, **kwargs):
return super().__new__(cls, *args, **kwargs)