Mark Dickinson <dicki...@gmail.com> added the comment:

This is not a bug, just a common gotcha.  The rules are
described at:

http://docs.python.org/reference/executionmodel.html#naming

Here's the relevant excerpt:

"""If a name binding operation occurs anywhere within a code block, all 
uses of the name within the block are treated as references to the 
current block. This can lead to errors when a name is used within a 
block before it is bound. This rule is subtle. Python lacks declarations 
and allows name binding operations to occur anywhere within a code 
block. The local variables of a code block can be determined by scanning 
the entire text of the block for name binding operations."""

----------
nosy: +marketdickinson

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue5763>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to