Шаблон кода, который я пытаюсь создать:
def OuterFunction():
theVariable = 0
def InnerFunction():
# use theVariable from OuterFunction somehow
# the solution is not to use InnerFunction(theVariable) due to the reasons given in the text
InnerFunction()
Я надеялся, что есть какое-то ключевое слово (например, глобальное) или способ сказать интерпретатору использовать переменную из области видимости внешнего метода.
Зачем мне это нужно так: скрипт Python, который мы запускали раньше, теперь должен стать модулем (набор методов).
OuterFunction раньше не существовала, и InnerFunction является лишь примеромдля большого числа очень сложных методов, которые несут уже существующую логику.
theVariable является просто примером для нескольких глобальных переменных, которые использовались в скрипте во всех методах, которые представляет InnerFunction.
Я не хочу менять сигнатуры всех методов, которые, кстати, являются вложенными.
РЕДАКТИРОВАТЬ:
Вот код, который вылетает для меня в каждом интерпретаторе, с "локальной переменной«theVariable» ссылается перед присваиванием «ошибка (поэтому я не могу просто ссылаться на переменную):
def OuterFunction():
theVariable = 5
def InnerFunction():
theVariable = theVariable + 1
print(theVariable)
InnerFunction()
OuterFunction()
EDIT2:
Кажется, попытка chaЭта переменная приводит к исключению, которое дает неверное описание.Если InnerFunction () изменяется, чтобы содержать только оператор print (theVariable), он работает.