Welcome, guest | Sign In | My Account | Store | Cart
def classmethod(method):
    return lambda self, *args, **dict: method(self.__class__, *args, **dict)

class Singleton:
    count = 0
    def __init__(klass):
        klass.count += 1
        print klass, klass.count
    __init__ = classmethod(__init__)

    def __getattr__(klass, name):
        return getattr(klass, name)
    __getattr__ = classmethod(__getattr__)
    
    def __setattr__(klass, name, value):
        setattr(klass, name, value)
    __setattr__ = classmethod(__setattr__)

c = Singleton()
d = Singleton()
c.test = 'In d?'
print 'c.test', c.test
print 'd.test', d.test

output = '''
junk.Singleton 1
junk.Singleton 2
c.test In d?
d.test In d?
'''

History