В следующем коде Python я получаю UnboundLocalError
. Как я понимаю, локальные функции разделяют локальные переменные содержащейся функции, но это вряд ли имеет место здесь. Я признаю, что a
является неизменяемым значением в этом контексте, но это не должно быть проблемой.
def outer():
a = 0
def inner():
a += 1
inner()
outer()
Казалось бы, внутренняя функция получила копии всех ссылок в родительской функции, так как я не получаю исключение UnboundLocalError
, если значение a
завернуто в изменяемый тип.
Кто-нибудь может прояснить поведение здесь и указать мне на соответствующую документацию на Python?