En Mon, 11 Jun 2007 22:19:15 -0300, Reuben D. Budiardja
<[EMAIL PROTECTED]> escribió:
> One last question. Do I have to do this for ever script I write, or can
> I put
> this into separate file and "include" it somehow ?
> I am going to have several mainscripts.py, and all is going to import
> myModule
> that will need access to this plots subroutine. It'll be great if I can
> put
> this trick on a single file that is included by the main scripts, to
> avoid
> violating DRY principle.
According to your description on how things work, you will need the
globals() from mainscript.py; try this:
--- mainscript.py ---
import plot_setup
plot_setup.setup(globals())
... rest of script, perhaps importing myModule.py ...
--- plot_setup.py ---
import sys
from types import ModuleType as module
def setup(namespace):
plotModule = module('plot')
for key,value in namespace.items():
if key[:2] != '__':
setattr(plotModule, key, value)
sys.modules['plot'] = plotModule
--- myModule.py ---
import plot
def do_work():
plot.DrawPlot(...)
...
(Having to type two lines at the top of your main scripts doesn't look so
bad...)
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list