I'm puzzled with the following example, which is intended to be a part of a module, say "tst.py":
a = something(5) def something(i): return i When I try: ->>> import tst The interpreter cries out: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "tst.py", line 11, in <module> a = something(5) NameError: name 'something' is not defined I know that changing the order of the definitions will work, however there are situations in which referring to an identifier before it is defined is necessary, e.g., in crossed recursion. So I modified my module: global something a = something(5) def something(i): return i And this was the answer I got from the interpreter: ->>> import tst Traceback (most recent call last): File "<stdin>", line 1, in <module> File "tst.py", line 12, in <module> a = something(5) NameError: global name 'something' is not defined Do you have any comments? Thanks, --Sergio. -- http://mail.python.org/mailman/listinfo/python-list