Alcance de Python

Las variables solo están disponibles en el área de creación. Esto se llama ámbito.

Ámbito local

Las variables creadas dentro de una función pertenecen al ámbito local de esa función y solo pueden ser utilizadas dentro de la función.

Ejemplo

Las variables creadas dentro de una función están disponibles dentro de esa función:

def myfunc():
  x = 100
  print(x)
myfunc()

Ejecutar Ejemplo

Función dentro de una función

Como se muestra 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

Puede acceder a una variable local desde una función dentro de otra función:

def myfunc():
  x = 100
  def myinnerfunc():
    print(x)
  myinnerfunc()
myfunc()

Ejecutar Ejemplo

Ambito Global

Las variables creadas en el cuerpo del código Python son variables globales y pertenecen al ámbito global.

Las variables globales están disponibles en cualquier ámbito (global y local).

Ejemplo

Las variables creadas fuera de una función son variables globales y pueden ser utilizadas por cualquier persona:

x = 100
def myfunc():
  print(x)
myfunc()
print(x)

Ejecutar Ejemplo

Variable de Nombre

Si opera variables con nombres idénticos tanto dentro como fuera de una función, Python las considerará dos variables separadas, una disponible en el ámbito global (fuera de la función) y otra en el ámbito local (dentro de la función):

Ejemplo

Esta función imprimirá la variable local x y luego el código también imprimirá la variable global x:

x = 100
def myfunc():
  x = 200
  print(x)
myfunc()
print(x)

Ejecutar Ejemplo

Palabra clave Global

Si necesita crear una variable global pero está atascado en el ámbito local, puede usar la palabra clave global.

La palabra clave global convierte una variable en una variable global.

Ejemplo

Si utiliza la palabra clave global, la variable pertenece al ámbito global:

def myfunc():
  global x
  x = 100
myfunc()
print(x)

Ejecutar Ejemplo

Además, si desea cambiar una variable global dentro de una función, también utilice la palabra clave global.

Ejemplo

Para cambiar el valor de una variable global dentro de una función, utilice la palabra clave global para referirse a esa variable:

x = 100
def myfunc():
  global x
  x = 200
myfunc()
print(x)

Ejecutar Ejemplo