You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bug.py: 3 test cases stripped down to the bare minimum
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2009-09-03.11:44:35.275>created_at=<Date2009-09-03.11:25:31.158>labels= ['type-bug', 'invalid']
title='incorrect: failed local variable referenced before assignment'updated_at=<Date2009-09-03.11:44:35.262>user='https://bugs.python.org/paultjuhatwork'
The attached python file will give the following output, which is
incorrect behavior as far as I know:
"
this will fail
failed local variable 'in_std' referenced before assignment
this won't fail
Not failed
this won't fail either
Not failed
"
This is tested on windows with python2.6(standard msi) and on centos
5.3 with python2.6 (custom rpm), python2.4 (system rpm), freebsd with
python2.5 (system package), python2.6 ("hand" compiled) and python3.0
("hand" compiled).
The attached code is stripped down to the bare minimum and therefore
won't do anything usefull.
"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."
In the failing example, the registerdecorator function contains an
assignment to in_std, so by the rules above in_std is local to the
function. The 'if in_std' line therefore tries to lookup 'in_std' in
the local namespace; it doesn't exist (yet), so an UnboundLocalError
exception occurs.
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: