Hallo, playing with the decorators from PEP 318 I found the elegant singleton decorator.
def singleton(cls): instances = {} def getinstance(): if cls not in instances: instances[cls] = cls() return instances[cls] return getinstance @singleton class A: pass class B: pass a1=A() a2=A() a3=A() b1=B() b2=B() b3=B() for i in ((a1,b1),(a2,b2),(a3,b3)): print id(i[0]),id(i[1]) But I always get a syntax error declaring class A as singleton. >>> reload ( decorator) Traceback (most recent call last): File "<stdin>", line 1, in ? File "decorator.py", line 27 class A: pass ^ SyntaxError: invalid syntax What's the problem with this code because it's only copied for the PEP 318? It doesn't work with python 2.4 and python 2.5. Greetings Rainer -- http://mail.python.org/mailman/listinfo/python-list