Sharing package data across files
scottpakin1 at gmail.com
scottpakin1 at gmail.com
Tue Jun 28 15:17:06 EDT 2016
I'm trying to create a package in which the constituent files share some state. Apparently, I don't understand scopes, namespaces, and package semantics as well as I thought I did. Here's the directory structure for a simplified example:
example/
__init__.py
vars.py
funcs.py
vars.py defines a single variable:
foo = 123
funcs.py defines a function that reads and writes that variable:
def bar():
global foo
foo += 1
return foo
__init__.py exposes both of those to the caller:
from vars import foo
from funcs import bar
Alas, it seems the bar function does not reside in the same global scope as the foo variable:
>>> from example import foo, bar
>>> foo
123
>>> bar()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "example/funcs.py", line 3, in bar
foo += 1
NameError: global name 'foo' is not defined
How can I make the example package work like one integrated module even though in reality it's split across multiple files?
Thanks,
-- Scott
More information about the Python-list
mailing list