Thanks very much for all your responses. It's pretty clear now that what I thought I could somehow do is not "pythonic" and for good reason.
Kent Johnson says it well: "Module dependencies should be one-way" I can buy that. On Mon, Jun 29, 2009 at 2:47 PM, Kent Johnson<ken...@tds.net> wrote: > On Mon, Jun 29, 2009 at 1:23 PM, Robert Lummis<robert.lum...@gmail.com> wrote: >> Here's an example that seems not possible in python. I'm probably >> missing something so please enlighten me. I only tried doing this as >> an exercise to show myself how name references work. I'm not saying >> it's needed or that it's good practice. >> >> I can write the following as a single file and it works as expected: >> >> ===snip=== >> #!/usr/bin/python >> >> def show(*args): >> print >> for arg in args: >> print arg + ':', >> exec('print ' + arg) >> >> a=15 >> b='hello' >> x=['bob',3] >> >> show('a') >> show('a','b') >> show('a','b','x') >> ===snip=== >> >> The calls to 'show' output lines like "a: 15" which could be useful >> for debugging or some such purpose. >> >> However, it seems that I can't put the function definition in a file >> and import it because I can't find a way to refer to an object in the >> main program file from within a module file. > > Right. We did recently discuss ways to implement this function: > http://www.mail-archive.com/tutor@python.org/msg35873.html > >> I understand that it's a >> good thing to contol which namespaces are referenced by which code but >> isn't there sometimes a need for code in a module to access the main >> program file's namespace? My example may be a little contrived but >> isn't this ability legitimately needed at times? > > Generally no, that would be a design smell. Module dependencies should > be one-way; if main needs module foo, then foo should not have to know > about main. > > Kent > -- Robert Lummis _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor