break in a module

Dave Angel davea at ieee.org
Wed Jun 15 00:02:05 EDT 2011


On 01/-10/-28163 02:59 PM, Eric Snow wrote:
> <snip>
>
> Unfortunately not.  Most of this line of thinking is the result of
> looking at import functionality in different ways, including with
> regards to the problem of modules getting imported twice (once as
> __main__).  I've been doing work on multi-file modules, custom module


Watch out for that importing of the original script.  Doing that has 
many risks, only one of which is the problem of the two names.

In fact, any time you have mutual imports, you run a certain risk, if 
the modules involved have any code that's not inside defs.  It's not 
well defined what order the initialisation happens, so you may wind up 
calling code in another module that's not really there yet.

The module import tree should be strictly hierarchical, without cycles. 
  if you need stuff from the __main__, pass it to the other module, 
don't let the other module peek back over your shoulder.

In the case of a module importing things from your script, the solution 
is pretty simple.  Move the needed code elsewhere, and import it both 
from your script and from the other module.

DaveA






More information about the Python-list mailing list