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 -- https://mail.python.org/mailman/listinfo/python-list