> but it's still not quit handy > > # initialization file (init1.py) > import time; > xx = 44 > > # main file was > print xx > x=time.time() > > # main file should become > print init1.xx > x=init1.time.time() > > so even for the "standard" functions like "time" I've to include the > preceeding module "init1" :-(
Ummm... does this help? /src/python/Foo> cat init.py #! /usr/local/bin/python from time import time xx = 44 /src/python/Foo> python Python 2.3.4 (#1, Feb 7 2005, 15:50:45) [GCC 3.3.4 (pre 3.3.5 20040809)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from init import * >>> dir() ['__builtins__', '__doc__', '__file__', '__name__', 'time', 'xx'] >>> xx 44 >>> time <built-in function time> >>> time() 1167262478.6845641 >>> xx = 42 # this does not change the init module's value! >>> import init >>> init.xx 44 As Piet points out, you get a copy of variables defined in a module when using the from module import * syntax (as is demonstrated by the assignment above). (And I stand corrected on the notion that you could execute "from module import *" in other than module level scope.) If it is your intention to use those variables defined in init to communicate with other modules making the same sort of import, then you probably don't want to use "from module import *" syntax. In that case, you can import just the module, and make assignments into that module's namespace. (e.g., init.xx = 3) If all you care about is getting some "stuff" into your global namespace in a convenient and repeatable way, then I think what I showed both above and originally is fine. -ej -- http://mail.python.org/mailman/listinfo/python-list