В python выдаёт ошибку: local variable 'he' referenced before assignment ошибка
def convert():
he=8
p=2
v=9
d=1
j=0
def hisla():
print("текст")
he=(he-7)
hisla()
print(he)
convert()
Как можно исправить? Заранее спасибо:)
Ответы (2 шт):
Автор решения: entithat
→ Ссылка
Ключевое слово
nonlocalиспользуется для работы с переменными внутри вложенных функций, где переменная не должна принадлежать внутренней функции.
def convert():
he=8
p=2
v=9
d=1
j=0
def hisla():
print("текст")
nonlocal he
he = (he - 7)
hisla()
print(he)
convert()
Автор решения: Extend
→ Ссылка
Создавая вложенный метод внутри него создается локальная область видимости, и при попытке присвоить созданной переменной в методе уровнем выше иное значение таким образом:
he = he - 7
Компилятор пытается найти ее во вложенном методе, и соответственно не находит его. nonlocal "расширяет" область видимости, и за счет этого переменная становится доступна для манипуляций.