Fonctions avec des arguments de longueur variable (\*\*kwargs)
Poussons plus loin ce que vous avez appris sur les arguments flexibles. Vous avez utilisé *args, vous allez maintenant utiliser **kwargs ! La particularité de **kwargs est qu’il vous permet de passer un nombre variable d’arguments de type mot-clé aux fonctions. Rappelez-vous de la vidéo précédente : dans la définition de la fonction, kwargs est un dictionnaire.
Pour mieux comprendre cette idée, vous allez utiliser **kwargs dans cet exercice pour définir une fonction qui accepte un nombre variable d’arguments de type mot-clé. La fonction simule un système simple de rapport d’état qui affiche l’état d’un personnage dans un film.
Cet exercice fait partie du cours
Introduction aux fonctions en Python
Instructions
- Complétez l’en-tête de la fonction avec le nom de la fonction
report_status. Elle accepte un seul argument flexible**kwargs. - Itérez sur les paires clé-valeur de
kwargspour afficher les clés et les valeurs, séparées par les deux-points « : ». - Dans le premier appel à
report_status(), transmettez les paires mot-clé-valeur suivantes :name="luke",affiliation="jedi"etstatus="missing". - Dans le deuxième appel à
report_status(), transmettez les paires mot-clé-valeur suivantes :name="anakin"affiliation="sith lord"etstatus="deceased".
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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=____)