Local scope gone wrong
a = 42 def f(): print(a) a = 23 print('ok') print(a) f() print(a)
ok 42 Traceback (most recent call last): File "scoping_external_variable.py", line 8, in <module> f() File "scoping_external_variable.py", line 3, in f print(a) UnboundLocalError: local variable 'a' referenced before assignment
Accessing a global variable inside a function works, but if I change it (make it refer to another piece of data), then it is disallowed. If I only change the data inside (for mutable variables), that works, but is a bad practice.