Curso de python nivel medio

¿Qué es el alcance de una variable?

El alcance de una variable se refiere a la parte del programa en la que esa variable es accesible o puede ser utilizada. En Python, las variables pueden tener un alcance local o un alcance global.

Variables locales

Una variable local es una variable que se define dentro de una función y solo es accesible dentro de esa función. No se puede acceder a ella desde fuera de la función.

Ejemplo de variable local

1def saludar():
2    mensaje = "Hola, mundo"  # Variable local
3    print(mensaje)
4
5saludar()
6
7# Intentar acceder a 'mensaje' fuera de la función causará un error
8# print(mensaje)  # Esto dará un error porque 'mensaje' es local
Salida de Consola!:
Hola, mundo
  • ¿Qué hace este código?:
    • Define una función saludar que contiene una variable mensaje.
    • mensaje es una variable local porque solo existe dentro de la función saludar.
    • Si intentas usar mensaje fuera de la función, recibirás un error porque no está definida en ese ámbito.

Variables globales

Una variable global es una variable que se define fuera de cualquier función y es accesible desde cualquier parte del programa, tanto dentro como fuera de las funciones.

Ejemplo de variable global

1mensaje = "Hola, mundo"  # Variable global
2
3def saludar():
4    print(mensaje)  # Se puede acceder a la variable global dentro de la función
5
6saludar()
7print(mensaje)  # Se puede acceder a la variable global fuera de la función
Salida de Consola!:
Hola, mundo
Hola, mundo
  • ¿Qué hace este código?:
    • Define una variable global mensaje.
    • La función saludar accede a esta variable global y la imprime.
    • La variable global mensaje también puede ser utilizada fuera de la función.

Modificar variables globales dentro de una función

Si intentas modificar una variable global dentro de una función sin decirle explícitamente a Python que es global, Python creará una nueva variable local con el mismo nombre.

Ejemplo sin la declaración global

1contador = 10  # Variable global
2
3def incrementar():
4    contador = 5  # Crea una nueva variable local
5    contador += 1
6    print("Valor de 'contador' dentro de la función:", contador)
7
8incrementar()
9print("Valor de 'contador' fuera de la función:", contador)
Salida de Consola!:
Valor de 'contador' dentro de la función: 6
Valor de 'contador' fuera de la función: 10
  • ¿Qué hace este código?:
    • Define una variable global contador.
    • Dentro de la función incrementar, intenta modificar contador, pero en realidad está creando una nueva variable local con el mismo nombre.
    • La variable global contador no se ve afectada por los cambios dentro de la función.

Ejemplo con la declaración global

Si realmente quieres modificar la variable global desde dentro de la función, debes usar la palabra clave global.

1contador = 10  # Variable global
2
3def incrementar():
4    global contador  # Decirle a Python que use la variable global
5    contador += 1
6    print("Valor de 'contador' dentro de la función:", contador)
7
8incrementar()
9print("Valor de 'contador' fuera de la función:", contador)
Salida de Consola!:
Valor de 'contador' dentro de la función: 11
Valor de 'contador' fuera de la función: 11
  • ¿Qué hace este código?:
    • Usa la palabra clave global para decirle a Python que se debe usar la variable global contador dentro de la función incrementar.
    • Ahora, cuando se modifica contador dentro de la función, se modifica la variable global.

Resumen

  • Variables locales:

    • Definidas dentro de una función.
    • Solo accesibles dentro de esa función.
    • Desaparecen después de que la función termina de ejecutarse.
  • Variables globales:

    • Definidas fuera de todas las funciones.
    • Accesibles desde cualquier parte del código, tanto dentro como fuera de las funciones.
    • Pueden ser modificadas dentro de las funciones usando la palabra clave global.

Conclusión

Entender el alcance de las variables es crucial para evitar errores y escribir código claro y funcional. Las variables locales se usan para almacenar datos que solo son necesarios dentro de una función, mientras que las variables globales se usan para datos que deben ser accesibles en todo el programa. ¡Practica con ejemplos para familiarizarte con cómo y cuándo usar cada tipo de variable!

  • Loading...