Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Alcance de Variables Locales, Globales y No Locales | Alcance de Variables, Funciones Anidadas y Closures
Conceptos de Programación Funcional en Python

bookAlcance 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 len o range.

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()
copy
  • La variable global_var se define en el ámbito global y es accesible desde cualquier parte del módulo;
  • Dentro de la función outer, enclosing_var crea una variable de ámbito envolvente que puede ser accedida por funciones anidadas;
  • La función anidada inner define local_var, que existe solo dentro de esa función y demuestra el acceso a variables de todos los ámbitos envolventes;
  • La función len se 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?

question mark

¿Qué hace la palabra clave nonlocal en Python?

Selecciona la respuesta correcta

question mark

¿Qué es la regla LEGB?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 1

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 3. Capítulo 1
some-alt