Diferencia entre argumentos y parámetros de una función en Python
En Python, los términos "parámetros" y "argumentos" se utilizan para referirse a diferentes aspectos de la definición y llamada de funciones, aunque a menudo se usan indistintamente en el habla cotidiana. Aquí te explico las diferencias teóricas y te doy algunos ejemplos para ilustrar mejor cada concepto.
Parámetros
Los parámetros son las variables listadas en la definición de una función. Se utilizan como nombres simbólicos dentro de la función para referirse a los valores que serán pasados cuando se llame a la función. Los parámetros actúan como variables locales dentro del cuerpo de la función.
Ejemplo:
def sumar(a, b): # 'a' y 'b' son parámetros
return a + b
En este ejemplo, a
y b
son parámetros de la función sumar
.
Argumentos
Los argumentos son los valores reales que se pasan a una función cuando se llama a la función. Los argumentos son los datos con los que trabaja la función y se asignan a los parámetros correspondientes.
Ejemplo:
resultado = sumar(3, 5) # '3' y '5' son argumentos
print(resultado) # Esto imprimirá 8
En este ejemplo, 3
y 5
son los argumentos pasados a la función sumar
.
Diferencias Teóricas
- Definición vs. Llamada:
- Parámetros: Son parte de la definición de la función.
- Argumentos: Son los valores usados en la llamada a la función.
- Lugar:
- Parámetros: Se encuentran en la firma de la función (la línea donde se define la función).
- Argumentos: Se encuentran en la llamada de la función (donde se invoca la función).
- Propósito:
- Parámetros: Sirven como nombres simbólicos para los valores que la función espera recibir.
- Argumentos: Son los valores específicos que se pasan a la función cuando se llama.
Ejemplo Completo
def saludar(nombre, mensaje): # 'nombre' y 'mensaje' son parámetros
print(f"{mensaje}, {nombre}!")
# Llamando a la función con argumentos
saludar("Alice", "Hola") # 'Alice' y 'Hola' son argumentos
# Esto imprimirá: Hola, Alice!
Tipos de Argumentos
Argumentos Posicionales: Se pasan en el orden en que los parámetros están definidos.
def restar(a, b):
return a - b
print(restar(10, 5)) # Argumentos posicionales: 10 es a y 5 es b
Argumentos Nombrados (o keyword arguments): Se pasan como nombre=valor
, permitiendo desordenarlos.
print(restar(b=5, a=10)) # Argumentos nombrados: b es 5 y a es 10
Argumentos por Defecto: Son parámetros que tienen un valor predeterminado.
def multiplicar(a, b=2): # b tiene un valor por defecto de 2
return a * b
print(multiplicar(3)) # Utiliza el valor por defecto para b, resultado 6
print(multiplicar(3, 4)) # Sobrescribe el valor por defecto de b, resultado 12
Argumentos Variables: Permiten pasar un número variable de argumentos.
def sumar_todos(*args): # *args captura todos los argumentos posicionales como una tupla
return sum(args)
print(sumar_todos(1, 2, 3, 4)) # Resultado 10
def imprimir_datos(**kwargs): # **kwargs captura todos los argumentos nombrados como un diccionario
for clave, valor in kwargs.items():
print(f"{clave}: {valor}")
imprimir_datos(nombre="Alice", edad=30) # Imprime nombre: Alice y edad: 30
Conclusión
En Python, entender la diferencia entre parámetros y argumentos es fundamental para escribir funciones efectivas y claras.
- Parámetros son las variables en la definición de la función que actúan como contenedores de los valores que la función espera recibir. Estos son parte de la firma de la función y sirven como nombres simbólicos dentro del cuerpo de la misma.
- Argumentos son los valores reales que se pasan a la función cuando se invoca. Son los datos específicos con los que la función opera y se asignan a los parámetros correspondientes.