Message347703
def outer(a):
def inner():
print(a)
a = 43
return inner
t = outer(42)
print(t())
Outputs:
~/Documents/repro.py in inner()
1 def outer(a):
2 def inner():
----> 3 print(a)
4 a = 43
5 return inner
UnboundLocalError: local variable 'a' referenced before assignment
This is misleading, since `a` is actually in scope on line 3. What is making it fail is the assignment on line 4, since `a` has not been declared `nonlocal`.
Instead, the error should point to line 4 and report an illegal assignment to a read-only closure variable. |
|
Date |
User |
Action |
Args |
2019-07-11 19:34:49 | kolia | set | recipients:
+ kolia |
2019-07-11 19:34:49 | kolia | set | messageid: <1562873689.17.0.696922314347.issue37568@roundup.psfhosted.org> |
2019-07-11 19:34:49 | kolia | link | issue37568 messages |
2019-07-11 19:34:48 | kolia | create | |
|