Corey Richardson wrote:

My first thought was to have a module specifically for holding things
like that, global objects that all the interacting modules need access
to. I did a simple test with a lib module, and then a few modules that
simply added things to a list called g in that lib module, but the
changes did not persist (tested with another module that printed the
contents of lib.g)

Perhaps you should give a *simple* example, but what you describe should work. Let's start with a very simple library module:

# lib.py
g = []


Now let's import it and use it from another module:

# a.py
import lib

def do_stuff():
    lib.g.append(42)


Save those two files as named, and then import them into the interactive interpreter:


[steve@sylar ~]$ python
Python 2.5 (r25:51908, Nov  6 2007, 16:54:01)
[GCC 4.1.2 20070925 (Red Hat 4.1.2-27)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import lib
>>> import a
>>> lib.g
[]
>>> a.do_stuff()
>>> lib.g
[42]


Of course, when your application exists (or in this case, the interactive session), the changes to lib.g will be lost because they only exist in memory. If you want data to persist across application runs, you need to arrange for the application to save the data to disk, and then read it again when it starts up.

Python has many tools for working with persistent data: Windows-style ini files (module config parser), XML, JSON, Mac-style plists, YAML (third-party module only), and pickles, to name only a few.



--
Steven

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to