Source code for enkie.singleton_meta

"""Metaclass for singleton classes."""


[docs]class SingletonMeta(type): """ Metaclass for singleton classes. Credits: https://www.pythonprogramming.in/singleton-class-using-metaclass-in-python.html """ def __init__(self, name, bases, dic): self.__single_instance = None super().__init__(name, bases, dic) def __call__(cls, *args, **kwargs): if cls.__single_instance: return cls.__single_instance single_obj = cls.__new__(cls) single_obj.__init__(*args, **kwargs) cls.__single_instance = single_obj return single_obj