Python UnboundLocalError при обновлении переменной из внешней функции (закрытие)Python

Программы на Python
Anonymous
Python UnboundLocalError при обновлении переменной из внешней функции (закрытие)

Сообщение Anonymous »

Я пытаюсь создать функцию счетчика, которая запоминает свое состояние, но получаю ошибку UnboundLocalError при увеличении счетчика. Кто-нибудь знает, почему?
Минимальный воспроизводимый пример

Код: Выделить всё

def make_counter():
count = 0

def inc(step=1):
if step > 0:
count += step
return count

return inc

c = make_counter()
print(c())
Ошибка

Код: Выделить всё

UnboundLocalError: local variable 'count' referenced before assignment
Я ожидал, что inc() обновит переменную count из make_counter(). Почему Python рассматривает count как локальную внутреннюю переменную inc() и как правильно обновить внешнюю переменную?


Подробнее здесь: https://stackoverflow.com/questions/798 ... ion-closur

Вернуться в «Python»