Alan Gauld wrote:
> "Kent Johnson" <[EMAIL PROTECTED]> 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@python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>   


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


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to