Singleton
class Singleton(object):
def __new__(cls, *a, **kw):
if not hasattr(cls, '_inst'):
cls._inst = super(Singleton, cls).__new__(*a, **kw)
return cls._inst
the problem
class Foo(Singleton): pass class Bar(Foo): pass f = Foo() b = Bar() # what class is b now? is that a Bar or a Foo instance?