Argumentos arbitrarios

Python intermedio para desarrolladores

Jasmin Ludolf

Curriculum Manager

Limitaciones de los argumentos definidos

def average(values):
    """Find the mean in a sequence of values and round to two decimal places."""

    average_value = sum(values) / len(values)
    rounded_average = round(average_value, 2)
    return rounded_average

# Usar seis argumentos print(average(15, 29, 4, 13, 11, 8))
TypeError: average() takes 1 positional argument but 6 were given
Python intermedio para desarrolladores

Argumentos posicionales arbitrarios

  • Las docstrings aclaran cómo usar funciones personalizadas

  • Los argumentos arbitrarios permiten aceptar cualquier número de argumentos

# Permitir cualquier número de argumentos posicionales (sin nombre)
def average(*args):
    # El código de la función no cambia
  • Nombre convencional: *args

  • Permite usos variados con resultados esperados

Python intermedio para desarrolladores

Usar argumentos posicionales arbitrarios

# Llamar a average con seis argumentos posicionales
print(average(15, 29, 4, 13, 11, 8))
13.33
Python intermedio para desarrolladores

Args crean un único iterable

  • *: Convierte los argumentos en un único iterable (tupla)
# Calcular a partir de varias listas
print(average(*[15, 29], *[4, 13], *[11, 8]))
13.33
Python intermedio para desarrolladores

Argumentos con nombre arbitrarios

# Usar argumentos con nombre arbitrarios
def average(**kwargs):

average_value = sum(kwargs.values()) / len(kwargs.values()) rounded_average = round(average_value, 2) return rounded_average
  • Argumentos con nombre arbitrarios: **kwargs

  • keyword=value

Python intermedio para desarrolladores

Usar argumentos con nombre arbitrarios

# Llamar a average con seis kwargs
print(average(a=15, b=29, c=4, d=13, e=11, f=8))
13.33
# Llamar a average con un kwarg
print(average(**{"a":15, "b":29, "c":4, "d":13, "e":11, "f":8}))
13.33
  • ¡Cada par clave-valor del diccionario se asigna a un argumento con nombre y su valor!
Python intermedio para desarrolladores

Kwargs crean un único iterable

# Llamar a average con tres grupos de kwargs
print(average(**{"a":15, "b":29}, **{"c":4, "d":13}, **{"e":11, "f":8}))
13.33
Python intermedio para desarrolladores

¡Vamos a practicar!

Python intermedio para desarrolladores

Preparing Video For Download...