У меня есть тривиальный пример:
def func1():
local_var = None
def func(args):
print args,
print "local_var:", local_var
local_var = "local"
func("first")
func("second")
func1()
Я ожидаю, что вывод будет:
first local_var: None second local_var: local
Однако мой фактический результат:
first local_var: Traceback (most recent call last): File "test.py", line 13, in func1() File "test.py", line 10, in func1 func("first") File "test.py", line 6, in func print "local_var:", local_var UnboundLocalError: local variable 'local_var' referenced before assignment
Мое понимание правил области видимости python диктует, что это должно работать так, как ожидалось. У меня есть другой код, где это работает, как и ожидалось, но сокращение одного неработающего фрагмента кода до его тривиального случая выше также не работает. Так что я в тупике.