Основная проблема, с которой я сталкиваюсь (специфическая для Python, не помечайте как дубликатную для другого языка, пожалуйста) состоит в том, что я не знаю, как изменить строковую переменную внутри функции с помощью вложенной функции, если это имеет какой-то смысл. Этот код должен намного лучше объяснить, что я имею в виду.
def insideAFunction():
variableToMod = "test"
def modFunc():
if 1 > 0:
variableToMod = "TEST"
print("before: " + variableToMod)
modFunc()
print("after: " + variableToMod)
def insideAFunction2():
variableToMod = "test"
def modFunc():
global variableToMod
if 1 > 0:
variableToMod = "TEST"
print("before: " + variableToMod)
modFunc()
print("after: " + variableToMod)
insideAFunction()
insideAFunction2()
Выход:
before: test
after: test
before: test
after: test
Желаемый результат будет:
after: TEST
Я знаю, что могу заставить его работать, просто определив variableToMod
вне insideAFunction () и сделав глобальный вызов, как в insideAFunction2 (), но я хочу знать, возможно ли сделать это полностью внутри функции.