※このページではアフィリエイト広告を利用しています

Python初心者が押さえておくと良い関数における引数のルール

Python

Pythonを勉強始めたばかりだと関数の引数を正しく理解できておらず、TypeErrorなどに出くわすことがあると思います。

関数にはいくつかルールがあります。ここでは、Pythonの関数における引数について初心者向けに解説しています。

この記事の対象

  • 関数における引数について知りたい方
  • 位置引数、キーワード引数について知りたい方
  • 引数の注意点で押さえておきたい点を知りたい方
スポンサーリンク
スポンサーリンク

関数における引数の型

デフォルト引数

def 関数名(引数1,引数2=値,引数3=値...):
 #処理内容
 return 戻り値

関数名(引数1,...)

関数を定義するとき、引数における初期値を設定できます。引数が指定されなかった場合に初期値が使用されます。これがデフォルト引数(default argument)になります。

位置引数

引数の順番によって値が決定されて、関数の定義文で指定された引数と対応させる「位置引数(positional argument)」というものがあります。

例えば、以下のような関数があるとします。

def add_numbers(a, b=0, c=0):
    return a + b + c

result = add_numbers(1) # a=1, b=0, c=0
result2 = add_numbers(1, 2)      # a=1, b=2, c=0
result3 = add_numbers(1, c=3)    # a=1, b=0, c=3
result4 = add_numbers(1, 2, 3)   # a=1, b=2, c=3
result5 = add_numbers(c=3, a=1)  # a=1, b=0, c=3

この関数は、位置引数とデフォルト引数を使用しています。aは必須の位置引数で、bとcはデフォルト引数であり、省略可能です。

結果

1
3
4
6
4

関数の引数での注意点

  • 引数の順序は、位置引数が先に来て、その後にキーワード引数が続くように指定する必要があります。
  • デフォルト引数を指定する場合は、必ず位置引数の後ろに指定する必要があります。
  • 可変長引数を使用する場合、位置引数、キーワード引数、デフォルト引数を定義することはできません。

可変長引数については以下をご参照下さい。

>>>Python初心者が知っておきたい関数-可変長引数-

関数における引数を用いた使用例

#関数における引数を用いた使用例
def henkan(mm_number,length="inch"):
 if length == "inch":
    result = mm_number * 0.03937
 elif length == "cm":
    result = mm_number / 10
 elif length == "寸":
    result = mm_number * 0.033
 result_out = "{0}mmは{1}{2}です。".format(mm_number,result,length)
 print(result_out)

henkan(2,"inch")
henkan(2,"cm")
henkan(3,"寸")

上記のプログラムは「mm」単位から任意の単位に変換するものです。引数として、任意の数値と単位を指定して、関数の中で単位変換の計算を行い、結果を出力しています。

結果

2mmは0.07874inchです。
2mmは0.2cmです。
3mmは0.099寸です。

まとめ

  1. 位置引数 (positional argument)
    • 引数の順番によって値が決定されます。
    • 位置引数は関数の定義文で指定された引数と対応します。
    • 引数のデフォルト値を指定しない場合、引数が必須となります。
  2. キーワード引数 (keyword argument)
    • 引数の名前で値が決定されます。
    • キーワード引数は位置引数の後ろに指定します。
    • 引数のデフォルト値を指定しない場合、引数が必須となります。
  3. デフォルト引数 (default argument)
    • 引数にデフォルト値を指定することができます。
    • 引数が省略された場合、デフォルト値が使用されます。

その他、引数に関すること

項目内容
名前を指定した引数関数における引数で、名前を指定した引数を扱う方法について解説しています。
可変長引数関数における引数の数を変える方法について解説しています。
タイトルとURLをコピーしました