SIngleton from __defaults__

Johannes Schneider johannes.schneider at galileo-press.de
Thu Jan 23 08:36:17 EST 2014


On 22.01.2014 20:18, Ned Batchelder wrote:
> On 1/22/14 11:37 AM, Asaf Las wrote:
> Chris is right here, too: modules are themselves singletons, no matter
> how many times you import them, they are only executed once, and the
> same module object is provided for each import.

I'm not sure, if this is the whole truth.

think about this example:

cat bla.py
a = 10

cat foo.py
from bla import a

def stuff():
         return a

cat bar.py
from foo import stuff
print stuff()
a = 5
print stuff()

from bla import *
print a

python bar.py
10
10
10

here the a is coming from bla and is known in the global namespace. But 
the value differs in stuff() and before/after the import statement. So 
the instance of the module differs -> it cannot be a singelton.

bg,
Johannes

-- 
Johannes Schneider
Webentwicklung
johannes.schneider at galileo-press.de
Tel.: +49.228.42150.xxx

Galileo Press GmbH
Rheinwerkallee 4 - 53227 Bonn - Germany
Tel.: +49.228.42.150.0 (Zentrale) .77 (Fax)
http://www.galileo-press.de/

Geschäftsführer: Tomas Wehren, Ralf Kaulisch, Rainer Kaltenecker
HRB 8363 Amtsgericht Bonn



More information about the Python-list mailing list