- 1. Ámbito de las Variables en Funciones Python
- 2. Referencias
1. Ámbito de las Variables en Funciones Python
1.1. ¿Qué es el Ámbito de una Variable?
El ámbito de una variable es la región del código en la que una variable es válida y accesible. En Python, hay dos tipos principales de variables en términos de ámbito:
- Variables Locales: Definidas dentro de una función y accesibles solo dentro de esa función.
- Variables Globales: Definidas fuera de todas las funciones y accesibles desde cualquier parte del código.

1.2. Variables Locales
Las variables locales se definen dentro de una función y solo existen durante la ejecución de esa función. Una vez que la función termina, la variable local es destruida.
1.2.1. Ejemplo de Variables Locales
def mi_funcion():
x = 10 # Variable local
print(f"El valor de x dentro de la función es: {x}")
mi_funcion() # Muestra: El valor de x dentro de la función es: 10
# print(x) # Error: NameError: name 'x' is not defined
En este ejemplo, x es una variable local que solo existe dentro de la función mi_funcion. Si intentas acceder a x fuera de la función, obtendrás un error.
1.3. Variables Globales
Las variables globales se definen fuera de todas las funciones y son accesibles desde cualquier parte del programa, incluidas las funciones.
1.3.1. Ejemplo de Variables Globales:
x = 5 # Variable global
def mi_funcion():
print(f"El valor de x dentro de la función es: {x}")
mi_funcion() # Muestra: El valor de x dentro de la función es: 5
print(f"El valor de x fuera de la función es: {x}") # Muestra: El valor de x fuera de la función es: 5
En este caso, x es una variable global y puede ser accedida tanto dentro como fuera de la función.
1.3.2. Modificar Variables Globales Dentro de una Función
Si quieres modificar una variable global dentro de una función, debes usar la palabra clave global. Esto indica que deseas referirte a la variable global, no a una nueva variable local.
Ejemplo:
x = 5 # Variable global
def cambiar_x():
global x
x = 10 # Modificamos la variable global
print(f"El valor de x dentro de la función es: {x}")
cambiar_x() # Muestra: El valor de x dentro de la función es: 10
print(f"El valor de x fuera de la función es: {x}") # Muestra: El valor de x fuera de la función es: 10
Aquí, la palabra clave global permite que la función modifique la variable global x en lugar de crear una nueva variable local.
1.4. Variables con el Mismo Nombre (Local y Global)
Si tienes una variable global y una variable local con el mismo nombre, Python dará prioridad a la variable local dentro del ámbito de la función.
Ejemplo
x = 5 # Variable global
def mi_funcion():
x = 10 # Variable local (solo dentro de la función)
print(f"El valor de x dentro de la función es: {x}")
mi_funcion() # Muestra: El valor de x dentro de la función es: 10
print(f"El valor de x fuera de la función es: {x}") # Muestra: El valor de x fuera de la función es: 5
Aunque x tiene el mismo nombre dentro y fuera de la función, son variables diferentes. La variable local x dentro de la función es independiente de la variable global x.
1.5. Uso de nonlocal
La palabra clave nonlocal se utiliza para trabajar con variables dentro de funciones anidadas. Permite modificar variables en un ámbito intermedio, es decir, ni local ni global.
Ejemplo
def funcion_externa():
x = 5 # Variable en el ámbito de la función externa
def funcion_interna():
nonlocal x # Modificamos la variable de la función externa
x = 10
print(f"Valor de x dentro de la función interna: {x}")
funcion_interna()
print(f"Valor de x dentro de la función externa: {x}")
funcion_externa()
Salida
Valor de x dentro de la función interna: 10
Valor de x dentro de la función externa: 10
En este ejemplo, nonlocal permite que la función interna modifique la variable x de la función externa.
1.6. Tabla Comparativa: Local, Global y nonlocal

1.7. Resumen
- Variables locales: Solo existen dentro de las funciones.
- Variables globales: Existen en todo el programa y pueden ser modificadas dentro de las funciones usando
global. nonlocal: Permite modificar variables en funciones anidadas.
Las variables locales y globales permiten controlar el acceso y la modificación de los datos en distintas partes de tu programa, manteniendo el código organizado y evitando colisiones de nombres.