デフォルト引数は、関数を定義する際に引数に初期値を設定できる機能です。これにより、関数を呼び出す際に引数を省略できるため、柔軟性が向上します。この教材では、デフォルト引数の基本的な使い方とそのメリットについて学びます。
デフォルト引数は、関数の定義時に引数に値を設定することで定義します。以下のサンプルコードを見てみましょう。
def greet(name="ゲスト"):
print(f"こんにちは、{name}さん!")
greet() # 引数を省略
greet("太郎") # 引数を指定
greet
関数は、name
という引数を持ち、デフォルト値として"ゲスト"を設定しています。greet()
では、引数を省略したため、デフォルト値"ゲスト"が使用されます。出力は「こんにちは、ゲストさん!」になります。greet("太郎")
では、引数"太郎"が指定され、出力は「こんにちは、太郎さん!」になります。デフォルト引数を使用することで、以下のようなメリットがあります。
デフォルト引数を使用する際には、いくつかの注意点があります。
以下の例を見てみましょう。
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list
print(append_to_list(1)) # [1]
print(append_to_list(2)) # [1, 2]
print(append_to_list(3, [])) # [3]
append_to_list
関数は、my_list
というデフォルト引数を持ち、デフォルトでは空のリストが設定されています。append_to_list(1)
では、デフォルトのリストに1が追加されて、リストは[1]
になります。append_to_list(2)
では、同じリストに2が追加され、リストは[1, 2]
となります。[3]
となります。このように、デフォルト引数にミュータブルなオブジェクトを使用すると、予期しない結果が生じることがあります。ミュータブルなオブジェクトをデフォルト引数として使用する際には、注意が必要です。
デフォルト引数は、関数をより柔軟で使いやすくするための強力な機能です。引数を省略可能にすることで、関数の呼び出しを簡潔にし、コードの可読性を向上させることができます。ただし、ミュータブルなオブジェクトをデフォルト引数として使用する際は、注意が必要です。