Pedro Werneck wrote: >>>> class Singleton(object): > ... def __new__(cls, *args, **kwds): > ... try: > ... return cls._it > ... except AttributeError: > ... cls._it = object.__new__(cls, *args, **kwds) > ... return cls._it > > But __init__ will be called once for each time you call A, even if it's > always the same instance returned. If this is a problem, you'll need > another method to use for initialization and call it only once. >
Or you could always just use the __new__() method instead of __init__(), putting all your initialization into the above except-block. If you replace 'cls._it = ...' with 'self = cls_it = ...' you'll feel right at home too :). Anything 'unpythonic' (gosh how I hate that word ;)) about that, BTW? c.u. wildemar -- http://mail.python.org/mailman/listinfo/python-list