Alcance de Variables Locales, Globales y No Locales
Desliza para mostrar el menú
Comprender cómo Python determina el alcance de las variables es fundamental para escribir código claro y libre de errores. Python utiliza un conjunto específico de reglas, conocidas como la regla LEGB, para decidir dónde debe buscar el valor de una variable. LEGB significa Local, Enclosing, Global y Built-in. Cuando se hace referencia a una variable, Python busca su valor en este orden:
- Local: variables definidas dentro de la función o método actual;
- Enclosing: variables en el ámbito de la función envolvente más cercana (si se utilizan funciones anidadas);
- Global: variables definidas en el nivel superior del módulo o declaradas globales usando la palabra clave
global; - Built-in: nombres predefinidos en Python, como
lenorange.
Esta regla permite que Python resuelva los nombres de variables de manera eficiente y te ayuda a predecir de dónde provendrá el valor de una variable. En ocasiones, puede ser necesario modificar variables fuera del ámbito de la función actual. Python proporciona dos palabras clave para esto: global y nonlocal. La palabra clave global permite asignar un valor a una variable a nivel de módulo, mientras que nonlocal permite modificar una variable en el ámbito de la función envolvente más cercana que no sea global.
123456789101112131415161718# Global scope global_var = "I am global" def outer(): # Enclosing scope enclosing_var = "I am enclosing" def inner(): # Local scope local_var = "I am local" print("Local:", local_var) print("Enclosing:", enclosing_var) # Found in enclosing scope print("Global:", global_var) # Found in global scope print("Built-in:", len([1, 2, 3])) # 'len' comes from built-in scope inner() outer()
- La variable
global_varse define en el ámbito global y es accesible desde cualquier parte del módulo; - Dentro de la función
outer,enclosing_varcrea una variable de ámbito envolvente que puede ser accedida por funciones anidadas; - La función anidada
innerdefinelocal_var, que existe solo dentro de esa función y demuestra el acceso a variables de todos los ámbitos envolventes; - La función
lense utiliza para mostrar cómo Python puede acceder a nombres del ámbito incorporado.
Esto muestra cómo Python encuentra los valores de las variables buscando en los ámbitos local, envolvente, global e incorporado en ese orden, haciendo que la resolución de variables sea predecible y organizada.
1. ¿Qué hace la palabra clave nonlocal en Python?
2. ¿Qué es la regla LEGB?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla