I'm less confused. If someone can explain the wisdom of this design, I'd be grateful.
If someone can explain why the following compiles successfully, I'd be even more grateful: def get_toks( text ): global line_ptr, last_line while line_ptr < last_line: while char_ptr < len(text[line_ptr]): if matches_EOI(): tokens.append( Token(EOI) ) elif matches_EOL(): tokens.append( Token(EOL) ) line_ptr += 1 char_ptr = 0 Shouldn't "char_ptr" be flagged as an error, appearing in line 4 before being a lhs in the last line? Martin [EMAIL PROTECTED] wrote: > Peter, > > question is, why did the first one work? In my real code I've got > module-level vars and an error msg trying to use them in a function. > In my test example I've got them accessed from within a function w/o > error message. > > I am confused. > > Martin > > Peter Otten wrote: > > MartinRinehart wrote: > > > > > However, here's the little tester I wrote: > > > > > > # t.py - testing > > > > > > global g > > > g = 'global var, here' > > > > > > def f(): > > > print g > > > > > > f() > > > > > > It prints 'global var, here,' not an error message. Wassup? > > > > Try it again with a modified f(): > > > > def f(): > > print g > > g = 42 > > > > In Python variables that are assigned to in a function are > > function-local by default. > > > > Peter -- http://mail.python.org/mailman/listinfo/python-list