This article has been dead for over three months
You
def Singleton(cls):
instance = []
def create(*args, **kw):
if not instance:
instance.append(cls(*args, **kw))
return instance[0]
return create
# Test:
TheList = Singleton(list)
def test2():
mylist1 = TheList([1,2,3])
mylist2 = TheList()
print mylist1, mylist2
mylist1.append(4)
del mylist1[1]
print mylist1, mylist2
>>> test2()
[1, 2, 3] [1, 2, 3]
[1, 3, 4] [1, 3, 4]