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 bitfort
Recipients bitfort
Date 2009-08-25.15:29:08
SpamBayes Score 9.855349e-07
Marked as misclassified No
Message-id <1251214151.84.0.540608749633.issue6782@psf.upfronthosting.co.za>
In-reply-to
Content
I can't tell if this is "feature" or a "bug" but either way this
behavior struck me as strange.
"""
def func():
  x = 5
  def inc():
    temp = x + 1 # when inc() is execute, this line fails
    x = temp
    return x
  return inc

i = func()
i() # will raise error
"""
It says that x referenced before defined (when computing x + 1). It
seems that the fact that x is assigned in the local inc() that it
shadows the outer x.
Even stranger is that if you remove the the assignment of "x = temp"
there is no error; suggesting the assignment to x anywhere in the inner
function shadows the entire function. 

This is not the expected behavior, so I thought it may be bug.
History
Date User Action Args
2009-08-25 15:29:12bitfortsetrecipients: + bitfort
2009-08-25 15:29:11bitfortsetmessageid: <1251214151.84.0.540608749633.issue6782@psf.upfronthosting.co.za>
2009-08-25 15:29:10bitfortlinkissue6782 messages
2009-08-25 15:29:09bitfortcreate