Предположим, у меня есть следующий код python:
def outer():
string = ""
def inner():
string = "String was changed by a nested function!"
inner()
return string
Я хочу, чтобы вызов external() возвращался "String был изменен вложенной функцией!", но я получаю "". Я пришел к выводу, что Python считает, что строка string = "string was changed by a nested function!"
является объявлением новой переменной local to inner(). Мой вопрос: как я могу сказать Python, что он должен использовать строку external()? Я не могу использовать ключевое слово global
, потому что строка не является глобальной, она просто живет во внешней области. Идеи?