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