[Tutor] function declaration problems perhaps?

Bob Gailer bgailer at alum.rpi.edu
Wed Jul 25 20:35:32 CEST 2007


Alan Gauld wrote:
> "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.
>   
Compiling to bytecode raises syntax, deprecation and indentation errors. 
All others AKAIK are raised during execution
> Alan G. 
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>   


-- 
Bob Gailer
510-978-4454 Oakland, CA
919-636-4239 Chapel Hill, NC




More information about the Tutor mailing list