4 class _Singleton(type):
5 """ A metaclass that creates a Singleton base class when called. """
8 def __call__(cls, *args, **kwargs):
9 if cls not in cls._instances:
10 cls._instances[cls] = super(_Singleton, cls).__call__(*args, **kwargs)
11 return cls._instances[cls]
14 class Singleton(_Singleton('SingletonMeta', (object,), {})): pass