bug in python's scope handling?
tim.one at home.com
Wed Jul 18 21:15:23 CEST 2001
[Philipp Weinfurter, on "a = a + 1", or some such]
> i don't mean to be pedantic, but the rules are that if a variable
> is not found in local scope, then the compiler looks up the global
> scope and python doesn't follow this rule here.
Except you made that rule up <wink>. The actual rule is that if a name is
bound anywhere within a code block, that name is local throughout the entire
code block. This determination is made at compile-time, not at runtime. In
"a = a + 1", a is bound to within the code block, therefore all instances of
"a" within the code block refer to a (the same) local vrbl.
More information about the Python-list