Fundamentos de las funciones en Python
Las funciones son la base de cualquier programa en Python. Permiten estructurar el código, evitar la repetición y crear soluciones modulares y reutilizables.
Tanto principiantes como desarrolladores experimentados se enfrentan a preguntas clave al trabajar con funciones en Python. ¿Cómo pasar argumentos correctamente? ¿Qué son las variables globales y cómo usarlas? ¿Para qué sirven los decoradores y cómo emplear global? ¿Cómo retornar múltiples valores desde una función?
Definición y sintaxis de las funciones en Python
¿Qué es una función en Python?
Una función es un bloque de código con nombre que se puede invocar varias veces. En Python, las funciones se crean con la palabra clave def.
Declaración e invocación de funciones
La declaración de una función se realiza de la siguiente manera:
def saludar():
print("¡Hola, mundo!")
La función se invoca por su nombre:
saludar()
Las funciones en Python pueden contener instrucciones, condicionales, bucles y otras construcciones del lenguaje. Definir funciones correctamente ayuda a crear código legible y bien estructurado.
Argumentos de funciones en Python
Argumentos posicionales
Los argumentos posicionales se pasan a la función en el mismo orden en que se definen:
def saludar(nombre):
print(f"¡Hola, {nombre}!")
saludar("Ana")
Al usar argumentos posicionales, es importante respetar el orden correcto de los parámetros.
Argumentos por defecto
Los argumentos por defecto permiten asignar valores a los parámetros que se usarán si no se pasa el argumento:
def saludar(nombre="Invitado"):
print(f"¡Hola, {nombre}!")
saludar() # ¡Hola, Invitado!
Usar argumentos por defecto aumenta la flexibilidad de las funciones y reduce la cantidad de parámetros obligatorios.
Argumentos con palabra clave
Los argumentos con palabra clave se pasan indicando el nombre del parámetro:
def pedido(articulo, cantidad):
print(f"Has pedido {cantidad} {articulo}")
pedido(articulo="pizza", cantidad=2)
Los argumentos con palabra clave hacen el código más legible y permiten pasar los parámetros en cualquier orden.
Cantidad variable de argumentos
Python admite pasar un número indefinido de argumentos mediante *args y **kwargs:
def sumatoria(*args):
print(sum(args))
sumatoria(1, 2, 3, 4) # 10
def mostrar_info(**kwargs):
for clave, valor in kwargs.items():
print(f"{clave}: {valor}")
mostrar_info(nombre="Juan", edad=30)
La construcción *args acepta cualquier cantidad de argumentos posicionales. La construcción **kwargs acepta cualquier cantidad de argumentos con palabra clave.
Retorno de valores desde funciones en Python
Fundamentos de la sentencia return
Las funciones pueden devolver resultados mediante la sentencia return. Esto permite usar el resultado de la función en otras partes del programa:
def sumar(a, b):
return a + b
resultado = sumar(5, 3)
print(resultado) # 8
La sentencia return finaliza la ejecución de la función y devuelve el control al lugar desde donde se llamó.
Retorno de múltiples valores
Python permite devolver varios valores a la vez:
def obtener_coordenadas():
return 10, 20
x, y = obtener_coordenadas()
Técnicamente, Python devuelve una tupla que luego se puede desempaquetar en variables individuales. Esta es una forma práctica de obtener múltiples resultados de una sola función.
Particularidades del uso de return
Si una función no contiene la sentencia return, automáticamente devuelve None. Es importante tener esto en cuenta al diseñar funciones que deben proporcionar un valor específico.