On 08/12/2012 17:48, Josh English wrote:
On Saturday, December 8, 2012 9:40:07 AM UTC-8, Peter Otten wrote:

Two underscores trigger name mangling only in a class, not in a module.

Don't try to hide the Options instance:

# module config.py

import ConfigParser

class Options(ConfigParser.SafeConfigParser):

      ... # as above

options = Options()

Then use it elsewhere:

from config import options

options.set("mysection", "myoption", "myvalue")

All but the first import will find the module in the cache (sys.modules) and

therefore the same Options instance will be used. VoilĂ  your no-nonsense

singleton.


Ah. I was over-thinking again. I couldn't find an example of this anywhere, and when I 
saw the tirades against Singletons they mentioned "use modules" but, well, I 
haven't had my morning coffee yet. I shouldn't even be trying this sort of thing until 
then.

Thank you for the simple answer.

Josh


For the benefit of the OP and others, if you want to gain more knowledge about patterns in Python such as the Singleton, I suggest you use your favourite search engine to find "Alex Martelli Python patterns".

--
Cheers.

Mark Lawrence.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to