[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