Załóżmy, że mam następujący kod Pythona:Python nadpisywanie zmiennych w funkcji zagnieżdżonych
def outer():
string = ""
def inner():
string = "String was changed by a nested function!"
inner()
return string
Chcę wywołanie zewnętrznej(), aby wrócić! „String został zmieniony przez zagnieżdżonej funkcji”, ale pojawia się „” . Wnioskuję, że Python uważa, że linia string = "string was changed by a nested function!"
jest deklaracją nowej zmiennej lokalnej do wewnętrznej(). Moje pytanie brzmi: jak mogę powiedzieć Pythonowi, że powinien używać zewnętrznego() ciągu? Nie mogę użyć słowa kluczowego global
, ponieważ ciąg nie jest globalny, po prostu żyje w zewnętrznym zasięgu. Pomysły?
Może być powiązany: http://stackoverflow.com/q/146359/212218 –