Cargando...

Funciones y variables globales en python

Publicación: Febrero 4, 2026

Funciones

Extracto de código que realiza una tarea específica. Puede devolver una salida predefinida (output) con base en entradas específicas (input).

Para principiantes en la programación, una función puede pensarse como una caja negra a la cual le damos insumos y nos devuelve un nuevo producto. Piensa en un extractor de jugo; le proporcionas fruta (entrada), la muele (función) y obtenemos jugo (salida).

Analogía de funciones con extractor de jugo

En python una función se define como:

def function_name(input):
	# Operations
	print(input)
	result = 'result'
	
	return result

Aunque no es necesario especificar el tipo de dato de los parámetros, el tipo de dato a retornar, o el de las mismas variables internas, es posible hacerlo de la siguiente forma:

def is_of_legal_age(age: int) -> bool:
    if 18 < age:
        adult = True
    else:
        adult = False
    return adult

user_age:int
age: int
name: str
height: float
is_human: bool

user_age = int(input("Ingrese su edad: "))

if is_of_legal_age(user_age):
    print("Mayor de edad")
else:
    print("Menor de edad")
Ingrese su edad: 21
Mayor de edad

Funciones vacías pass

En ocaciones tenemos un programa que involucra varias funciones pero aún no sabemos la lógica exacta de cada una. Para no olvidar a todas las pequeñas tareas que nos falta por hacer, podemos declarar funciones vacías de la siguiente forma:

# TODO: to X thing based on Y parameter and return Z
def to_do():
	pass

Argumentos posicionales y de nombre

Cuando queremos ingresar más de un parámetro podemos indicarlos mediante su posición (positional arguments) o su nombre (keyword arguments).

def get_voltage(current: float, resistance: float):
    voltage = current / resistance
    return voltage

circuit_current = 2  # A
circuit_resisteance = 50  # Ω

voltage = get_voltage(current=circuit_current, resistance=circuit_resisteance)
print(f"{voltage} V")
0.04 V

Variables globales

Ahora, reconocemos que todo aquello que esté identadado en cualquier línea debajo de la función son instrucciones que pertenecen a la misma función. Cualquier variable que declaremos dentro de la función se puede usar exclusivamente dentro de esta función, son variables locales. Es decir, todas las variables están dentro del scope (o dominio) de la función.

Sin embargo, ¿que pasa si hay datos que deben ser utilizados fuera de la función o múltiples veces? Para ello empleamos una variable global. Esta palabra reservada (global) indicará al interpretador que la variable puede utilizase fuera del dominio (scope) de la función; puede utilizarse en todas partes del código. Por ejemplo:

points = 0

def attack_enemy():
  global points
  print("You've attacked someone")
  points += 5

for i in range(0, 3):
    attack_enemy()

print(f"Points: {points}")
You've attacked someone
You've attacked someone
You've attacked someone
Points: 15

Otra forma para obtener el mismo comportamiento, podemos pasar las variables como parámetro, modificarlas dentro de la función y luego retornarlas. Personalmente prefiero esta alternativa en lugar de emplear variables globales. Evítese modificar el global scope

def attack_enemy(points):
  print("You've attacked someone")
  points += 5
  return points

points = 0

for i in range(0, 3):
    points = attack_enemy(points)

print(f"Points: {points}")

Podemos modificar cualquier tipo de objeto, como por ejemplo una lista:

def add_item_to_vault(player_vault, item):
    player_vault.append(item)

vault = ['map', 'telescope', 'cookie']

add_item_to_vault(vault, 'ham')

print(f"Vault: {vault}")
You've attacked someone
You've attacked someone
You've attacked someone
Points: 15

Etiquetas relacionadas:
Arriba