import_checker.py WJ106 Copyright (C) 2006 Walter de Jong Python is a fine programming language. There is one horrendous thing with it though, that bites even the most experienced python programmers every now and then: the scope of variables. We've been taught to use the keyword 'global', and heartily do so. Still, problems occur when running into a "recursive import" problem. Example: ### program A ### import B var = 0 if __name__ == '__main__': var = 10 B.doit() ### module B ### import A def doit(): print A.var ### end of example ### Module B will see A.var having value 0, even though in program A we assigned it a value of 10. Python is right and it is not a python bug, but it is $#@! confusing and it is being caused by the recursive import; A imports B, and B imports A. The import_checker.py is a tool that detects recursive imports. This problem only occurs for global variables in modules. The best way of solving the problem is to put 'var' into a new module C, and import C from both A and B. Good luck and greets, --Walter EOB