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?