por ejemplo: instrucción de declaración declarará una nueva variable local.Python, ¿cómo puedo cambiar el valor de una variable en el ámbito principal?
foo = 'global'
def func1():
foo = 'func1'
def func2():
foo = 'local variable in func2'
uso declaración global va a utilizar el foo en mundial:
def func2():
global foo
foo = 'global changed in func2' #changed the foo value in global scope
cómo puedo cambiar la variable foo en el ámbito func1?
Gracias por cualquier ayuda.
Editar:
Gracias Brandon Craig Rodas, por fin entiendo su significado.
Si hay más de 3 ámbitos anidados, puedo almacenar la variable en una lista.
foo = ['global', 'function1', 'function2']
def func1():
foo[1] = 'func1'
def func2():
foo[2] = 'func2'
foo[1] = 'func1 modified in func2'
Acabo de utilizar una variable global en realidad.
así, si hay dos funciones anidadas, podemos usar
nonlocal foo
y
global foo
si hay más de tres funciones anidadas,
y cada uno de las variables de uso de la función en el alcance de otras funciones,
¿por qué no declaramos una variable de lista global?
¡Gracias por toda su ayuda!
Gracias, eso realmente ayudó. pero solo en la imaginación, ¿qué tal si anidamos más de 3 funciones? ¿Podría ayudarnos más? Gracias. – netroyal
Gracias. Finalmente entiendo cuál era tu significado. si hay más de dos funciones anidadas, puede usar foo [1, 2, 3] para almacenar cada valor en el elemento foo [0] foo [1] foo [2]. ¡Gracias de nuevo! – netroyal