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

Reply via email to