キーワード引数と位置引数
関数を呼び出すとき、引数に値を渡して、その値を使って関数を実行します。その値は、位置引数でもキーワード引数でも指定することができます:
def rectangle(h, w, val=0):
return [[val] * w] * h
print(rectangle(2, 3, 1))
# [[1, 1, 1], [1, 1, 1]]
def rectangle(h, w, val=0):
return [[val] * w] * h
print(rectangle(2, w=3, val=1))
# [[1, 1, 1], [1, 1, 1]]
第2の例のように、引数の名前を指定して値を渡すことができます(
val=1
や w=3
など)。これは、引数が多く、そのほとんどがデフォルト値を持つ関数に特に有用です。その場合、必要なパラメータだけにキーワード引数を指定し、他は省略できます。
キーワード引数は関数の引数と同じ順序で指定する必要はありません。引数名が関数の引数名と一致していれば、順序は自由です。しかし、位置引数の後にキーワード引数を指定することはできますが、その逆はできないことに注意してください。関数を呼び出すとき、まず位置引数を指定し、その後にキーワード引数を指定します。なぜそうなるのか、考えてみてください 🤔。
チャレンジ
患者のプロパティを出力する関数が与えられています。この関数を以下の引数の順序で3回呼び出してください:
- name, age, height
- age, name, height
- height, age, name
各呼び出しの出力は同じになる必要がありますが、位置引数とキーワード引数の両方を使って関数を呼び出してかまいません。
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB