Funciones con argumentos de palabra clave de longitud variable (\*\*kwargs)
Vamos a profundizar en lo que has aprendido sobre argumentos flexibles: has utilizado *args
, ¡ahora vas a utilizar **kwargs
! Lo que hace diferente a **kwargs
es que te permite pasar un número variable de argumentos de palabra clave a las funciones. Recuerda del vídeo anterior que, dentro de la definición de la función, kwargs
es un diccionario.
Para comprender mejor esta idea, en este ejercicio vas a utilizar **kwargs
para definir una función que acepte un número variable de argumentos de palabra clave. La función simula un sencillo sistema de informe de estado que imprime el estado de un personaje de una película.
Este ejercicio forma parte del curso
Introducción a las funciones en Python
Instrucciones de ejercicio
- Completa el encabezado de la función con el nombre de la función
report_status
. Acepta un único argumento flexible**kwargs
. - Recorre los pares clave-valor de
kwargs
para imprimir las claves y los valores, separados por dos puntos ':'. - En la primera llamada a
report_status()
, pasa los siguientes pares de palabra clave-valor:name="luke"
,affiliation="jedi"
ystatus="missing"
. - En la segunda llamada a
report_status()
, pasa los siguientes pares de palabra clave-valor:name="anakin"
,affiliation="sith lord"
ystatus="deceased"
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Define report_status
def ____(____):
"""Print out the status of a movie character."""
print("\nBEGIN: REPORT\n")
# Iterate over the key-value pairs of kwargs
for ____, ____ in kwargs.items():
# Print out the keys and values, separated by a colon ':'
print(____ + ": " + ____)
print("\nEND REPORT")
# First call to report_status()
# Second call to report_status()
report_status(name=____, affiliation=____, status=____)