Funzioni con argomenti di lunghezza variabile (\*\*kwargs)
Approfondiamo ciò che hai imparato sugli argomenti flessibili: hai usato *args, ora userai **kwargs! Ciò che rende **kwargs diverso è che ti permette di passare un numero variabile di argomenti di parole chiave alle funzioni. Ricordiamo dal video precedente che, all'interno della definizione della funzione, kwargs è un dizionario.
Per capire meglio questa idea, in questo esercizio utilizzerai **kwargs per definire una funzione che accetta un numero variabile di argomenti di parole chiave. La funzione simula un semplice sistema di report di stato che stampa lo stato di un personaggio in un film.
Questo esercizio fa parte del corso
Introduzione alle funzioni in Python
Istruzioni dell'esercizio
- Completa l'intestazione della funzione con il nome della funzione
report_status. Accetta un singolo argomento flessibile**kwargs. - Itera le coppie chiave-valore di
kwargsper stampare le chiavi e i valori, separati dai due punti ':'. - Nella prima chiamata a
report_status(), passa le seguenti coppie parola chiave-valore:name="luke",affiliation="jedi"estatus="missing". - Nella seconda chiamata a
report_status(), passa le seguenti coppie parola chiave-valore:name="anakin",affiliation="sith lord"estatus="deceased".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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=____)