Le Sat, 31 Jan 2009 00:30:18 +0800, David <ld...@gmx.net> a écrit : > Dear List, > > the following comes from Harrington's "Hands-on Python" (section > 1.11.8): http://www.cs.luc.edu/~anh/python/hands-on/ > > > <code> > > '''Avoiding any error by passing a parameter''' > > def main(): > x = 3 > f(x) > > def f(whatever): > print whatever > > main() > > </code> > > I am not quite sure what is going on here. Could you please correct my > line of thought? > > 1) main() calls the function def main(): > > 2) in function def main(): the actual parameter 3 is given to the > function call f(). > > 3) f() then "jumps" out of function def main(): to call function > def f(whatever):, whose new value, 3, gets printed. > > Is this what is going on? I find it difficult to get my head around this > one. > Also: does Python go back to the function call main()'s position after > step 3)? How does that work? Again via def main():???
Your interpretation is correct. I guess what may trouble here is a question of order. main is defined before f, while its own definition uses f's definition. This is a bit weird, indeed, and does not help reading. But python doesn't mind. Instead, if ever main would actually be called/executed before f's definition, then you would get an error (try it). denis ------ la vida e estranya _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor