i need to write a singleton so i looked up some examples. here's one of them from https://stackoverflow.com/questions/6760...on#6798042
class _Singleton(type): """ A metaclass that creates a Singleton base class when called. """ _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls] class Singleton(_Singleton('SingletonMeta', (object,), {})): pass class Logger(Singleton): passi've just read about metaclasses but i don't understand how the above example uses a metaclass. shouldn't it be? -->
class _Singleton(type): """ A metaclass that creates a Singleton base class when called. """ _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls] class Singleton(metaclass=_Singleton('SingletonMeta', (object,), {})): pass # notice the metaclass class Logger(Singleton): passhowever i still want isinstance(inst, Singleton) to be True.