*args y **kwargs en Python
Funciones variádicas: aceptar cualquier número de argumentos.
def reportar(titulo, *valores, **opciones):
sep = opciones.get("sep", ", ")
cuerpo = sep.join(str(v) for v in valores)
linea = f"{titulo}: {cuerpo}"
if opciones.get("upper"):
linea = linea.upper()
return linea
simple = reportar("temperaturas", 18, 21, 19)
fuerte = reportar("temperaturas", 18, 21, upper=True)
numeros = [3, 1, 4, 1, 5]
expandido = reportar("dígitos", *numeros, sep=" | ")
Cómo funciona
*valoresjunta los argumentos posicionales extra en una tupla.**opcionesjunta los argumentos de palabra clave extra en un dict.*numerosen la llamada vuelve a esparcir una lista.
Palabras clave y builtins usados aquí
defforifreturnstr
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 391
- Tokens
- 133
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 84 segundos.
Paso 2 de 6 en Funciones; paso 34 de 72 en Fundamentos del lenguaje.