Functies met keyword-argumenten van variabele lengte (**kwargs)
Laten we verder bouwen op wat je hebt geleerd over flexibele argumenten: je hebt *args gebruikt, en nu ga je **kwargs gebruiken! Het verschil met **kwargs is dat je hiermee een variabel aantal keyword-argumenten aan functies kunt doorgeven. Herinner je uit de vorige video dat kwargs binnen de functiedefinitie een dictionary is.
Om dit beter te begrijpen, ga je in deze oefening **kwargs gebruiken om een functie te definiëren die een variabel aantal keyword-argumenten accepteert. De functie simuleert een eenvoudig statusrapport-systeem dat de status van een personage in een film afdrukt.
Deze oefening maakt deel uit van de cursus
Introductie tot functies in Python
Oefeninstructies
- Maak de functiekop af met de functienaam
report_status. Deze accepteert één flexibel argument**kwargs. - Itereer over de sleutel-waardeparen van
kwargsom de sleutels en waarden af te drukken, gescheiden door een dubbele punt ':'. - Geef in de eerste aanroep van
report_status()de volgende sleutel-waardeparen door:name="luke",affiliation="jedi"enstatus="missing". - Geef in de tweede aanroep van
report_status()de volgende sleutel-waardeparen door:name="anakin",affiliation="sith lord"enstatus="deceased".
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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=____)