Brain Dead Singleton

Robin Becker robin at SPAMREMOVEjessikat.fsnet.co.uk
Sat Jun 5 06:43:40 EDT 2004


Colin Brown wrote:
> "Kamilche" <klachemin at home.com> wrote in message
> news:889cbba0.0406041333.10402447 at posting.google.com...
> 
>>I looked on this newsgroup, and saw all the problems with making a
>>Singleton class with Python.
> 
> 
> Whenever I want a singleton "class", I just use a module with functions and
> global variables. Modules only import once.
> 
> Colin Brown
> PyNZ
> 
> 
> 
should often work, but this illustrates how it can go wrong

##################
f=open('my_singleton_module.py','w')
f.write('''a=0
def incr(i):
	global a
	oa = a
	a+=i
	return oa
''')
f.close()

import my_singleton_module as inst0
print inst0.a
inst0.incr(5)
print inst0.a
import sys
del sys.modules['my_singleton_module']
import my_singleton_module as inst1
print inst1.a
##################

so if sys.modules gets interfered with approriately, your singleton can 
start breeding.
-- 
Robin Becker



More information about the Python-list mailing list