2019-05-17 [長年日記]
■指定必須なキーワード引数
def foo(a, b, *, c): print(a) print(b) print(c)
と定義すると、
>>> foo(1, 2, 3) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: foo() takes 2 positional arguments but 3 were given foo() takes 2 positional arguments but 3 were given >>> foo(1, 2) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: foo() missing 1 required keyword-only argument: 'c' foo() missing 1 required keyword-only argument: 'c'
となって、キーワード引数なしで呼び出せなくなる。
>>> foo(1, 2, c=3) 1 2 3
という呼び出し方をする必要がある。
つまり、c は"キーワードで指定することが必須"でかつ"デフォルトの値を持たない"引数になったわけ。