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
kwargs
pour 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=____)