[Tutor] function declaration problems perhaps?
Alan Gauld
alan.gauld at btinternet.com
Wed Jul 25 19:21:08 CEST 2007
"Kent Johnson" <kent37 at tds.net> wrote
>> Perl executes differently to Python in that it does a compilation
>> stage before executing. Therefore Perl knows about all the function
>> definitions prior to executing any code. Python compiles modules
>> which it imports
>> but not scripts which it executes.
>
> Python compiles all scripts to bytecode.
Doh! Yes of course it does, stoopid me.
> scripts. However this has no bearing on the current thread; for both
> imported modules and executed scripts, a function must be defined
> before
> it can be called.
Yes, the bearing is in the way that Perl compiles its code.
Perl builds a name tree from the entire file before executing
so it doesn't rely on the order of definition, Python seems
to compile and execute code in a sequential manner and
therefore relies on the sequence being right.
I'm not sure if the undefined name errors come from the compilation
or from the execution - does anyone else. I confess i've never looked
deeply into how Python actually does its complile/execute cycle.
Alan G.
More information about the Tutor
mailing list