RE: [Zope] Verrryy strange behavior (NameError)
Andrew Athan writes:
This is a multi-part message in MIME format.
------=_NextPart_000_00FD_01C0BEB2.C6C2B880 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit Please avoid MIME messages!
... _stateVariable=0 ..... class .... def fun() .... _stateVariable=1
and this was causing me all kinds of grief. By changing the code to
_stateVariable = {'a':0} .... class ... def fun() ... _stateVariable['a']=1
everything works just fine. Now, can someone give me the shortcut to understand WHHHYYY? When Python sees an assignment to a *variable*, it assumes you want to define a new *local* variable. You must explicitly declare it "global" to be able to change the value of a global variable from a local context.
In the second case, you do not assign to a variable, but modify an object (leaving all variable binding unchanged). Dieter
participants (1)
-
Dieter Maurer