Alcance de Python
Una variable solo está disponible desde dentro de la región en la que se crea. Esto se llama alcance .
Ámbito local
Una variable creada dentro de una función pertenece al ámbito local de esa función y solo se puede usar dentro de esa función.
Ejemplo
Una variable creada dentro de una función está disponible dentro de esa función:
def myfunc():
x = 300
print(x)
myfunc()
Función Función interior
Como se explica en el ejemplo anterior, la variable x
no está disponible fuera de la función, pero está disponible para cualquier función dentro de la función:
Ejemplo
Se puede acceder a la variable local desde una función dentro de la función:
def myfunc():
x = 300
def myinnerfunc():
print(x)
myinnerfunc()
myfunc()
Alcance global
Una variable creada en el cuerpo principal del código Python es una variable global y pertenece al ámbito global.
Las variables globales están disponibles desde cualquier ámbito, global y local.
Ejemplo
Una variable creada fuera de una función es global y cualquiera puede usarla:
x = 300
def myfunc():
print(x)
myfunc()
print(x)
Nombrando Variables
Si opera con el mismo nombre de variable dentro y fuera de una función, Python las tratará como dos variables separadas, una disponible en el ámbito global (fuera de la función) y otra disponible en el ámbito local (dentro de la función):
Ejemplo
La función imprimirá el local x
, y luego el código imprimirá el global x
:
x = 300
def myfunc():
x = 200
print(x)
myfunc()
print(x)
Palabra clave global
Si necesita crear una variable global, pero está atascado en el ámbito local, puede usar la
global
palabra clave.
La global
palabra clave hace que la variable sea global.
Ejemplo
Si usa la global
palabra clave, la variable pertenece al ámbito global:
def myfunc():
global x
x = 300
myfunc()
print(x)
Además, use la global
palabra clave si desea realizar un cambio en una variable global dentro de una función.
Ejemplo
Para cambiar el valor de una variable global dentro de una función, consulte la variable usando la global
palabra clave:
x = 300
def myfunc():
global x
x = 200
myfunc()
print(x)