Python Tutorials

Dominando los Argumentos de las Funciones en Python

Spread the love

Las funciones son la piedra angular del código Python modular y reutilizable. Este tutorial profundiza en las complejidades de los argumentos de las funciones, proporcionándote el conocimiento para escribir programas más limpios, eficientes y con menos errores.

Tabla de contenido

Argumentos posicionales

Los argumentos posicionales son la forma más simple. Se pasan a una función en el orden en que están definidos. El orden se aplica estrictamente; la falta de coincidencia en el orden de los argumentos durante la llamada a la función producirá resultados incorrectos o errores.


def greet(name, greeting):
  print(f"{greeting}, {name}!")

greet("Alice", "Hello")  # Orden correcto
greet("Hello", "Alice")  # Orden incorrecto - imprimirá "Alice, Hello!"

Argumentos de palabra clave

Los argumentos de palabra clave te permiten especificar el nombre del argumento al llamar a una función. Esto hace que tu código sea más legible y menos propenso a errores, especialmente cuando se trata de funciones con muchos parámetros. El orden de los argumentos de palabra clave no importa.


def describe_pet(animal_type, pet_name, age=None):
  print(f"nTengo un {animal_type}.")
  print(f"El nombre de mi {animal_type} es {pet_name.title()}.")
  if age:
    print(f"Mi {animal_type} tiene {age} años.")

describe_pet(animal_type='hamster', pet_name='harry')
describe_pet(pet_name='willie', animal_type='dog', age=5)

Argumentos predeterminados

Los argumentos predeterminados proporcionan un valor de reserva para los parámetros de la función. Si no se proporciona un valor cuando se llama a la función, se utiliza el valor predeterminado. Los argumentos predeterminados siempre deben colocarse después de los argumentos no predeterminados en la definición de la función.


def power(base, exponent=2):
  return base ** exponent

print(power(3))      # Salida: 9 (el exponente toma el valor predeterminado 2)
print(power(3, 3))  # Salida: 27

Número variable de argumentos (*args y **kwargs)

La sintaxis `*args` y `**kwargs` te permite manejar un número variable de argumentos posicionales y de palabra clave, respectivamente. `*args` recopila los argumentos posicionales en una tupla, mientras que `**kwargs` recopila los argumentos de palabra clave en un diccionario.


def my_function(*args, **kwargs):
    print("Argumentos posicionales:", args)
    print("Argumentos de palabra clave:", kwargs)

my_function(1, 2, 3, name="Alice", age=30)

Argumentos mutables vs. inmutables

Comprender la mutabilidad es crucial cuando se trabaja con argumentos de funciones. Los objetos inmutables (como números, cadenas, tuplas) no se pueden cambiar dentro de una función; cualquier cambio crea un nuevo objeto. Los objetos mutables (como listas, diccionarios) se pueden modificar en su lugar, afectando al objeto original fuera de la función. Esto puede provocar efectos secundarios inesperados si no se maneja con cuidado.


def modify_list(my_list):
  my_list.append(4)  # Modifica la lista original

my_list = [1, 2, 3]
modify_list(my_list)
print(my_list)  # Salida: [1, 2, 3, 4] (lista original modificada)


def modify_string(my_string):
    my_string += "!!!"  # Crea una nueva cadena

my_string = "Hello"
modify_string(my_string)
print(my_string)  # Salida: Hello (cadena original sin cambios)

Esta guía completa proporciona una base sólida para trabajar con argumentos de funciones en Python. Dominar estos conceptos mejorará significativamente la calidad y el mantenimiento de tu código.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *