Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak de functiekop af met de functienaam report_status. Deze accepteert één flexibel argument **kwargs.
  • Itereer over de sleutel-waardeparen van kwargs om 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" en status="missing".
  • Geef in de tweede aanroep van report_status() de volgende sleutel-waardeparen door: name="anakin", affiliation="sith lord" en status="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=____)
Code bewerken en uitvoeren