Aprende Python · lección gratuita
Cuando defines una función puedes recibir datos a través de sus parámetros. La forma en que envías esos datos al llamarla cambia mucho la legibilidad y flexibilidad de tu código. En esta lección aprenderás las tres maneras principales de pasar argumentos en Python y cómo combinarlas.
nombre=valor y no dependen del orden.def f(x=10): y hacen que un parámetro sea opcional.crear_usuario(activo=True) es más claro que crear_usuario(True).En Python, una función define parámetros (los nombres que aparecen en el def) y al llamarla pasas argumentos (los valores reales). La manera más común es por posición: el primer argumento va al primer parámetro, el segundo al segundo, y así sucesivamente. El orden importa.
También puedes pasar argumentos por nombre (keyword arguments), indicando explícitamente a qué parámetro corresponde cada valor con la sintaxis parametro=valor. Esto te libera del orden y hace el código más legible. Si mezclas ambos estilos, los argumentos posicionales deben ir siempre antes que los keyword.
Finalmente, los valores por defecto permiten que un parámetro sea opcional: si quien llama no lo proporciona, se usa el valor indicado en la definición. Esto es muy útil para configuraciones que rara vez cambian.
def saludar(nombre, saludo="Hola"):
print(saludo + ", " + nombre)
saludar("Ana") # usa el valor por defecto
saludar("Luis", "Buenos días") # sobreescribe el valor por defecto
saludar(nombre="Eva", saludo="Hey") # ambos por nombre
# 1. Argumentos posicionales: el orden decide
def dividir(a, b):
return a / b
print(dividir(10, 2)) # a=10, b=2 -> 5.0
# 2. Argumentos por nombre: el orden no importa
print(dividir(b=2, a=10)) # 5.0
# 3. Valor por defecto opcional
def potencia(base, exp=2):
return base ** exp
print(potencia(5)) # exp por defecto = 2 -> 25
print(potencia(5, 3)) # exp = 3 -> 125
# 4. Mezcla: posicional primero, luego keyword
def perfil(nombre, edad, ciudad="Lima"):
print(nombre, edad, ciudad)
perfil("Sara", 30) # Sara 30 Lima
perfil("Tom", 25, ciudad="Cusco") # Tom 25 Cusco
💡 Usa argumentos por nombre cuando una función reciba varios valores del mismo tipo. Escribir volumen(alto=2, ancho=3, largo=4) evita confundir el orden y documenta tu intención.
| Concepto | Sintaxis | Ejemplo de llamada |
|---|---|---|
| Posicional | def f(a, b) | f(1, 2) |
| Por nombre (keyword) | def f(a, b) | f(b=2, a=1) |
| Valor por defecto | def f(a, b=10) | f(5) |
| Sobreescribir defecto | def f(a, b=10) | f(5, 20) |
| Mezcla (pos + keyword) | def f(a, b, c=0) | f(1, 2, c=3) |
| Regla de orden | defaults al final | def f(a, b=1) válido |
---
← Definir funciones: def y returnargs, kwargs y desempaquetado →