Python Scope
Una variable solo está disponible dentro de la región en la que se crea. Esto se llama alcance.
Alcance local
Una variable creada dentro de una función pertenece al alcance 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()
Inténtalo tú mismo »
Función dentro de la función
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()
Inténtalo tú mismo »
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 puede ser utilizada por cualquiera:
x = 300
def myfunc():
print(x)
myfunc()
print(x)
Inténtalo tú mismo »
Nombrar 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 alcance global (fuera de la función) y otra disponible en el alcance local (dentro de la función):
Ejemplo
La función imprimirá el x
local, y luego el código imprimirá el global x
:
x = 300
def myfunc():
x = 200
print(x)
myfunc()
print(x)
Inténtalo tú mismo »
Palabra clave global
Si necesita crear una variable global, pero está atascado en el ámbito local, puede utilizar la palabra clave global
.
La palabra clave global
hace que la variable sea global.
Ejemplo
Si utiliza la palabra clave global
, la variable pertenece al alcance global:
def myfunc():
global x
x = 300
myfunc()
print(x)
Inténtalo tú mismo »
Además, utilice la palabra clave global
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 utilizando la palabra clave global
:
x = 300
def myfunc():
global x
x = 200
myfunc()
print(x)
Inténtalo tú mismo »