どうも、Yuinaです。
今日はキーワード変数についてご紹介していきます。
キーワード変数って何?
キーワード変数とは、Pythonにおける kwargs
(キーワード引数)を指し、名前付き引数を好きなだけ渡せる柔軟な仕組みです。
関数を定義する際、引数にkwargs
を書くと、呼び出し時に渡されたすべての名前付き引数が一つの辞書にまとめられます。
この仕組みは、後から引数を増やす可能性がある関数に便利です。また、外部ライブラリにキーワード引数をそのまま渡すときにも使われます。
今の説明だけだとイメージが沸きづらいと思うので、化粧しているシチュエーションを例えとして使いながらお話ししていきます。
コードと説明
makeup() 関数に「唇の色」「まつげの濃さ」「チークの色」など好きなメイク項目を指定できる場面です。この関数は、指定されたメイク項目と色をkwargs
として受け取り、それを順に処理してくれます。
例1:メイク関数で、名前と色を渡して柔軟に処理
def makeup(kwargs):
for part, color in kwargs.items():
print(f"{part} に {color} を塗ります")
例1:関数の呼び出し
makeup(lips="赤", eyes="ブラウン", cheeks="ピーチ")
例1:出力結果
lips に 赤 を塗ります
eyes に ブラウン を塗ります
cheeks に ピーチ を塗ります
ちなみに、キーワード引数の順序は問われません。関数内では kwargs
が辞書(例:{"眉毛":"ブラウン", "リップ":"レッド", ...}
)で扱われ、繰り返し処理ができます。
キーワード変数・応用編
ちなみに、前もってデフォルト値を設定しておくことで、より柔軟性の高いプログラムになります。
例2:デフォルト値を組み込んだメイク関数
def makeup(kwargs):
default = {"lips": "赤", "eyes": "ブラック", "cheeks": "ピーチ"}
for part, default_color in default.items():
color = kwargs.get(part,default_color) #.get()を使ってデフォルト値を設定
print(f"{part} に {color} を塗ります")
makeup(eyes="ブラウン")
例2:出力結果
lips に 赤 を塗ります
eyes に ブラウン を塗ります
cheeks に ピーチ を塗ります
まとめ
本日はキーワード変数についてご紹介しました。
kwargs
はキーワード引数を自由自在に渡せる辞書形式の変数で、メイクのように「どこに何を塗るか」を柔軟に指定できる強力な仕組みです。
なお受け取るキーワードが多すぎると、何が必要なのか分かりづらくなります。ドキュメント化が重要となってきそうですね。
最後まで読んでくださって、ありがとうございました。