Saltar al contenido principal

Ámbito: Variables locales y globales

El ámbito de una variable es el contexto en el que existe esa variable. Una variable existe en dicho ámbito desde el momento en que se crea y deja de existir cuando desaparece su ámbito. Además, solo son accesibles desde su propio ámbito.

Los principales ámbitos en Python son:

  • Local: corresponde al ámbito de una función. Existe desde que se invoca la función hasta que finaliza la ejecución. No se puede acceder a estas variables desde fuera de la función.
  • Global: corresponde al ámbito que existe desde el comienzo de la ejecución de un programa. Todas las variables definidas fuera de cualquier función corresponden al ámbito global. Se puede acceder a ellas desde cualquier punto del programa, incluidas las funciones.

Variables locales en funciones

Aquellas variables que se utilizan por primera vez dentro de una función solo existen durante la ejecución de la función. Por lo tanto, una vez finalizada la ejecución de la función, no podremos acceder al valor de esa variable. Estas variables se conocen como variables locales.

def funcion1(parametro1, parametro2):
a = 2
resultado = (parametro1 + parametro2) / a

Por ejemplo, en el caso anterior, la variable a solo puede ser accesible desde dentro de la función debido a que es una variable local.

def funcion1(parametro1, parametro2):
a = 2
resultado = (parametro1 + parametro2) / a

valor = funcion1(3, 5)
print(a) # Obtenemos un error porque la variable a no está definida

Los parámetros de una función también se consideran variables locales.

def sumador(a, b):
suma = a + b
return suma

c = 3
d = 5
x = sumador(c, d)
print(x) # 8
print(a) # Error porque la variable no está definida.

Preferencia de variables

Si existe una variable local en una función con el mismo nombre que una variable global, sus nombres entran en conflicto.

Python busca primero en el ámbito local para ver si encuentra la variable, y si no, busca en el ámbito global. Es decir, las variables locales tienen preferencia sobre las globales.

a = 6 # Variable global a

def funcion_de_prueba():
a = 2 # Variable local a
print(a) # Se imprimirá el valor de a de la variable local

funcion_de_prueba() # Se imprimirá 2, porque a existe como variable local dentro de la función

Es preferible evitar el uso excesivo de variables globales. Es mejor pasar parámetros a funciones y devolver resultados. Ejemplo de uso:

pi = 3.1416 # Variable global pi

def area_circulo(radio):
return pi * radio**2 # En este caso, como no existe la variable local pi, se utiliza la variable global pi

def perimetro_circulo(radio):
return pi * 2 * radio # En este caso, como no existe la variable local pi, se utiliza la variable global pi

print(area_circulo(5))
print(perimetro_circulo(5))