module data member?

Peter J. Bismuti peter.j.bismuti at boeing.com
Tue Nov 13 18:39:21 CET 2007


This did the trick for the most part, but it still leaves a copy of the 
variable A in the "non-module" global namespace (see output below).  

I want A declared global to the module (so as not to be local within the 
functions of the module) but not visible outside of the module namespace 
(like B, see below). How can this be done?

Thanks again

python -i test.py
:>>> print test.A
10
:>>> print A
0
:>>> print B
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: name 'B' is not defined

____test.py___

A = 0

def getA():
  global A
  return A

def run():
  global A
  A = 10

if (__name__=="__main__"):
  import test
  test.run()

______


> def main():
>     # do mainy stuff here
>
> if __name__ == "__main__":
>    import myself
>    myself.main()
>
> This of course won't prevent __main__ to be existant, nor running possible
> initialization code twice. But if the module is supposed to do some work,
> it will operate on the one data all the other importing modules see.
>
> You can take this one step further, using an explicit init()-function that
> creates global state (remember, it's only module-global).
>
> Diez

-- 


Peter Bismuti
Boeing Information Technology
Renton, WA
(425) 234-0873 W
(425) 442-7775 C



More information about the Python-list mailing list