Python – キーワード引数、位置引数

programing

Pythonでは、関数に引数を渡す方法として、「位置引数」と「キーワード引数」の2つの方法があります。ここでは、キーワード引数に焦点を当てて説明します。

キーワード引数 (Keyword Arguments) とは? キーワード引数とは、関数を呼び出す際に、引数名(すなわち、キーワード)とその値を指定する方法です。これにより、引数の順序を気にせずに関数を呼び出すことができます。また、関数定義側でデフォルト値を設定することも可能で、呼び出し側が特定の引数を省略した場合、デフォルト値が使用されます。

基本的な使用法 キーワード引数の基本的な使い方を見てみましょう。

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

def greet(name, message):
    print(f"Hello {name}, {message}")

この関数を呼び出す際に、以下のようにキーワード引数を使用することができます:

greet(name="John", message="Good morning!")

結果:

Hello John, Good morning!

ここで注目すべきは、キーワード引数を使うことで namemessage の順番を自由に変えることができる点です。つまり、以下のコードも同じ結果を得ることができます:

greet(message="Good morning!", name="John")

デフォルト値を持つキーワード引数 関数を定義する際に、キーワード引数にデフォルト値を設定することもできます。以下に例を示します:

def greet(name="Friend", message="Hello!"):
    print(f"Hello {name}, {message}")

ここで、namemessage の両方にデフォルト値が設定されています。これにより、呼び出し側がこれらの引数を省略した場合、デフォルト値が使用されます:

greet()  # 両方の引数を省略

# 出力Hello Friend, Hello!

一部の引数だけを指定することも可能です:

greet(name="John")  # messageは省略

# 出力Hello John, Hello!

以上が、Pythonのキーワード引数の基本的な使い方とその特徴です。これにより、引数の順序を気にせず、またデフォルト値を設定して引数の省略を許容するなど、関数呼び出しの柔軟性と明示性を高めることができます。

位置引数 (Positional Arguments) とは?

位置引数 (Positional Arguments) とは? 位置引数とは、関数を呼び出す際に、引数を関数定義に従って順番に指定する方法です。この場合、関数は引数を受け取る順序に基づいてそれぞれの引数を識別します。つまり、引数の順序が重要となります。

基本的な使用法 位置引数の基本的な使い方を見てみましょう。

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

def greet(name, message):
    print(f"Hello {name}, {message}")

この関数を呼び出す際に、以下のように位置引数を使用することができます:

greet("John", "Good morning!")

結果:

Hello John, Good morning!

ここで注目すべきは、”John”が先に来ているため、これがnameに対応し、”Good morning!”が次に来るため、これがmessageに対応するという点です。したがって、以下のように引数の順序を変えると、結果も変わります:

greet("Good morning!", "John")

結果:

Hello Good morning!, John

このように、位置引数の場合、引数の順序が結果に直接影響を及ぼします

デフォルト値を持つ位置引数 位置引数でも、関数を定義する際にデフォルト値を設定することは可能です。以下に例を示します:

def greet(name="Friend", message="Hello!"):
    print(f"Hello {name}, {message}")

ここで、namemessage の両方にデフォルト値が設定されています。これにより、呼び出し側がこれらの引数を省略した場合、デフォルト値が使用されます:

greet()  # 両方の引数を省略

# 出力Hello Friend, Hello!

ただし、位置引数の場合、一部の引数だけを指定する際には注意が必要です。最初の引数(ここでは name)から順番に指定する必要があります:

greet("John")  # messageは省略

# 出力Hello John, Hello!

ただし、以下のようにするとエラーが出ます:

pythonCopy codegreet(, "Good morning!")  # nameは省略

位置引数の場合、省略する引数がある場合は、それ以降のすべての引数を明示的に指定するか、あるいは全て省略してデフォルト値を使用する必要があります。

コメント

タイトルとURLをコピーしました