MonkeeSage wrote: > A quick question about how python parses a file into compiled > bytecode. Does it parse the whole file into AST first and then compile > the AST, or does it build and compile the AST on the fly as it reads > expressions? (If the former case, why can't functions be called before > their definitions?) > > Thanks, > Jordan Python (2.5+) does parse the whole file top-to-bottom into an AST, and then compile the entire AST, resulting in a module code object that may contain other compiled code objects for the function bodies.
However, this isn't relevant to your parenthesized question, since compiling functions does not make them callable. A function becomes available only once its def statement has been executed. Since execution (generally) proceeds top to bottom, this is why functions can't be called before their definitions. HTH Michael -- http://mail.python.org/mailman/listinfo/python-list