Supongamos que tengo el siguiente código Python:Python sobreescritura de variables en funciones anidadas
def outer():
string = ""
def inner():
string = "String was changed by a nested function!"
inner()
return string
Quiero una llamada al exterior() para volver "! Cadena fue cambiado por una función anidada", pero me da "" . Concluyo que Python cree que la línea string = "string was changed by a nested function!"
es una declaración de una nueva variable local a inner(). Mi pregunta es: ¿cómo le digo a Python que debería usar la cadena externa()? No puedo usar la palabra clave global
, porque la cadena no es global, simplemente vive en un ámbito externo. Ideas?
Podría estar relacionado: http://stackoverflow.com/q/146359/212218 –