Python 位置引数、キーワード引数、デフォルト引数

はじめに みなさんこんにちはALEXです。今回は位置引数、キーワード引数、デフォルト引数について解説します。  

位置引数

Pythonで関数を使うときに引数を使うことが多いですが、その際、引数は複数で指定することができます。具体的には関数名のあとの()(丸かっこ)内にカンマ区切りで引数を指定します。このとき、キーワードを指定する位置が処理と関係があることに気をつけてください。 一つサンプルコードを書いてみましょう。よく行くレストランのランチの際にいつも店員さんがおっしゃるセリフです。  

以下のように表示されます。

次に引数の順番を変えてみます。

以下のように表示されますが、、

あれ、どこかおかしいですね。意図していない文章が出力されてしまいました。 上の例文からもわかるように、先頭から順番に位置を対応して渡すのが”位置引数”というものです、 ですので、引数の位置と意味を理解して記述しないと意図してない処理が行われバグの原因になります。例外が発生するわけではないので、後々面倒なことになります。位置引数は使い方に十分気をつけましょう。

キーワード引数

次にキーワード引数です。位置引数で引数の位置の使い方で混乱しないように、キーワード引数を使って引数の名前を指定して混乱を回避することができます。 使い方は、実行時に、引数に代入した形で関数を呼び出します。 先程のレストランでのランチのやり取りを使ってみます。

以下のように表示されます。

いかがでしょう?位置引数と一緒にキーワード引数を使うと、引数の順番と位置で混乱することがなく、スッキリコードが書けます。ただし、気をつけていただきたいのは、引き引数を先に書かかければならないということです。たとえば、以下のようなコードを書いてみましょう。

下記のように例外が発生しますので注意が必要です。

 

デフォルト引数

最後はデフォルト引数です。デフォルト引数とは関数を定義する際に、引数にあらかじめ指定の値を入れておくと、引数を指定しないで関数を呼び出した際に、この引数を使って処理をすることができます。 上の例のコードを流用します。

これも以下のように表示されます。

数を指定せずに関数を呼び出すと、デフォルト引数とし指定した値で処理されています。 引数を指定すれば、結果を制御することができます。

以下のように変更されました。

お仕事中のお客様はノンアルコールをおすすめしています。このように引数の値に変更を加えた部分だけ変更され、処理されていることがわかりますね。  

まとめ

今回は位置引数、キーワード引数、デフォルト引数について解説しました。位置引数単独でつかう場合の混乱を避けるためにキーワード引数を使いましょう。ということと、位置引数がキーワード引数の前に来る、デフォルト変数は予め変数の値を指定できる。というところが今回のポイントです。 次に、位置引数、キーワード引数についてもう少し掘り下げてご紹介します。