problem with global scope after package import via __init__.py

Denis S. Otkidach ods at fep.ru
Tue Aug 13 11:52:04 EDT 2002


On Tue, 13 Aug 2002, Mark Frazer wrote:

MF>
MF> I'd like to build a package out of several files as the
MF> individual files
MF> are large and become inwieldy.  Generally, I want a package
MF> user to
MF> import package
MF> only, and not worry about the individual files, so the
MF> __init__.py for
MF> the package does
MF> from file import *
MF> for all the files in the package.
MF>
MF> However, there seems to be a problem accessing scalars when
MF> the package
MF> is imported in this fashion.  The package files themselves
MF> can access the
MF> scalar properly, but the package user cannot.  Is this a
MF> bug?

fail.py:
#!/usr/bin/env python2

import p

val = 10
p.set_a (val)                     # set p.a.aval to 10 (p.aval
                                  # has its original value)

print "p.get_a() is ", p.get_a () # get p.a.aval
assert p.get_a () == val          # is OK
print "p.aval is ", p.aval
assert p.aval == val              # is not OK since p.aval is
                                  # -999 (the value of p.a.aval
                                  # at the moment when a is
                                  # imported) and val is 10

-- 
Denis S. Otkidach
http://www.python.ru/      [ru]
http://diveinto.python.ru/ [ru]





More information about the Python-list mailing list