可変長キーワード引数(**kwargs)を使う関数
柔軟な引数についてさらに踏み込みましょう。すでに *args を使いましたので、今度は **kwargs を使います! **kwargs が異なる点は、関数に可変個の「キーワード引数」を渡せることです。前の動画で見たように、関数定義の中では kwargs は辞書になります。
この考え方をよりよく理解するために、この演習では可変個のキーワード引数を受け取る関数を **kwargs で定義します。この関数は、映画の登場人物のステータスを出力するシンプルなステータスレポートシステムを模倣します。
この演習はコースの一部です
Pythonの関数入門
演習の手順
- 関数名を
report_statusとして関数ヘッダーを完成させてください。柔軟な引数**kwargsを1つ受け取ります。 kwargsのキーと値のペアを反復し、キーと値をコロン ':' で区切って出力してください。- 最初の
report_status()の呼び出しでは、次のキーワードと値の組を渡します:name="luke"、affiliation="jedi"、status="missing"。 - 2回目の
report_status()の呼び出しでは、次のキーワードと値の組を渡します:name="anakin"、affiliation="sith lord"、status="deceased"。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# 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=____)