Funktioner med variabelt antal nyckelordargument (**kwargs)
Nu tar vi nästa steg med flexibla argument – du har använt *args, och nu är det dags för **kwargs! Det som skiljer **kwargs från *args är att det låter dig skicka ett valfritt antal nyckelordargument till en funktion. Som du såg i videon är kwargs ett dictionary inuti funktionen.
För att förstå detta bättre ska du använda **kwargs i den här övningen för att definiera en funktion som tar emot ett variabelt antal nyckelordargument. Funktionen simulerar ett enkelt statussystem som skriver ut statusen för en karaktär i en film.
Den här övningen är en del av kursen
Introduktion till funktioner i Python
Övningsinstruktioner
- Fyll i funktionshuvudet med funktionsnamnet
report_status. Det ska ta emot ett enda flexibelt argument**kwargs. - Iterera över nyckel-värde-paren i
kwargsför att skriva ut nycklarna och värdena, separerade med ett kolon ':'. - I det första anropet till
report_status(), skicka följande nyckel-värde-par:name="luke",affiliation="jedi"ochstatus="missing". - I det andra anropet till
report_status(), skicka följande nyckel-värde-par:name="anakin",affiliation="sith lord"ochstatus="deceased".
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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=____)