In <[EMAIL PROTECTED]>, Tim Tyler wrote: > Like C, Python seems to insist I declare functions before calling > them - rather than, say, scanning to the end of the current script > when it can't immediately find what function I'm referring to.
They don't have to be declared but to be *defined* in Python before you can call them. A ``def`` is executed in Python -- a function object is given a name. The content of a Python script is executed in the order the code is written. > C lets you predeclare functions to allow for the existence of > functions with circular dependencies. > > Does Python allow you to do something similar? Yes, just define the function before it gets actually called:: def func_a(n): if n > 5: return else: func_b(n + 1) def func_b(n): print n func_a(n + 1) func_a(0) What happens here is 1. Define function A. That function B doesn't exist by now is no problem because it is not called yet. There's just the instruction to call it if the body of function A is executed. *Then* function B has to exist. 2. Define function B. You can swap both definitions without problems. 3. Function A is actually called and *must* exist at this point. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list