Posted at

キーワード専用引数

More than 1 year has passed since last update.


環境

python3


キーワード引数

def func1(value1, value2):

print(f'{value1}, {value2}')

渡された引数を表示するだけの簡単な関数func1は以下の呼び出し方のいずれでも呼び出せる。

func1(1, 'a')

func1(value1=1, value2='a')
func1(1, value2='a')


キーワード専用引数

def func2(value1, *, value2):

print(f'{value1}, {value2}')

この関数の定義のように引数の宣言に*をつけた場合は、*以降の引数はキーワード引数にしないと呼び出せなくなる。

func2(1, value2='a')        # 呼び出しOK

func2(1, 'a') # エラー

引数が多い場合とか、同じような値を複数渡す場合には、キーワード専用引数にしたほうが意図がわかりやすくなる。