Generic singleton

mk mrkafk at
Wed Mar 3 22:11:40 CET 2010

Arnaud Delobelle wrote:
> mk <mrkafk at> writes:
> [...]
>> hashable
>> ..
>>     All of Python’s immutable built-in objects are hashable, while no
>> mutable containers (such as lists or dictionaries) are.
>> Well ok, hashable they're not; but apparently at least dict and list
>> have id()?
> lists and dicts are not hashable, but their types are:


>>>> hash(dict)
> 4296155808
>>>> hash(list)
> 4296151808
> So just use the type as the key to the dictionary you maintain in your
> singleton.  

Hmm I have tested it and it seems to work.

> But the question is what you use your singleton for.

Well, partly this was for sake of learning; but partially I was thinking 
whether singleton as such may be useful for implementing "global queue 
of tasks" for worker threads in a large program: instead of handing down 
over and over the same reference to the global queue of tasks, classes 
or functions could call Singleton() and be done with it.

Or I could make my life simpler and use global variable. :-)

I will soon need to write such program, with remote calls from pyro 
(most probably), many worker threads, short-running jobs and 
long-running jobs, etc.


More information about the Python-list mailing list