semi-newbie module namespace confusion

Fredrik Lundh fredrik at pythonware.com
Tue Oct 4 08:08:29 CEST 2005


pnau at sjm.com wrote:

> The main jist of the problem is that I'm trying add data from one
> module to a list and a dictionary in another module, and it doesn't
> seem to stick over there.
>
> The programs below seem to illustrate the issue.  (The results follow
> the programs).
> Why are the results different from runs of the two programs?  The
> output of nameSpaceTestB.py makes sense to me, but I just don't get why
> nameSpaceTestA.py does what it does.
>
> I'm sure the reason is very simple, but I just don't see it.  Please,
> can someone shed some light on the issue for me?

running a piece of python code as a script isn't the same thing as
importing it as a module:

    "If you run a module as a script (i.e. give its name to the inter-
    preter, rather than importing it), it's loaded under the module
    name __main__.

    If you then import the same module from your program, it's re-
    loaded and reexecuted under its real name. If you're not careful,
    you may end up doing things twice."

    http://effbot.org/zone/import-confusion.htm

try changing your "printing from"-statements to

    print "printing from", __name__

to see what you're really doing.

</F>






More information about the Python-list mailing list