This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author benjamin.peterson
Recipients benjamin.peterson, monsanto
Date 2010-07-11.20:24:43
SpamBayes Score 8.2930385e-11
Marked as misclassified No
Message-id <1278879885.25.0.555833071992.issue9226@psf.upfronthosting.co.za>
In-reply-to
Content
I'm not sure what I correct behavior is in this case. Consider the function equivalent:

x = 3
def f(x):
    def m():
        x = x
        print x
    m()
f(4)

which gives:

Traceback (most recent call last):
  File "x.py", line 7, in <module>
    f(4)
  File "x.py", line 6, in f
    m()
  File "x.py", line 4, in m
    x = x
UnboundLocalError: local variable 'x' referenced before assignment

The class example works because name namespaces are unoptimized, so failing to find a binding in the local (class) namepsace, Python looks at the globals and finds the global definition.
History
Date User Action Args
2010-07-11 20:24:45benjamin.petersonsetrecipients: + benjamin.peterson, monsanto
2010-07-11 20:24:45benjamin.petersonsetmessageid: <1278879885.25.0.555833071992.issue9226@psf.upfronthosting.co.za>
2010-07-11 20:24:43benjamin.petersonlinkissue9226 messages
2010-07-11 20:24:43benjamin.petersoncreate