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