【Python】関数の引数について解説
関数と引数の基本
Pythonの関数は、コードを再利用可能なブロックにまとめるための重要な機能です。関数は「引数(arguments)」を受け取り、処理を行い、必要に応じて値を返します。
def greet(name):
print(f"こんにちは、{name}さん!")
greet("太郎") # こんにちは、太郎さん!
位置引数
関数に渡す引数の順番が重要な場合、それを「位置引数」と呼びます。
def add(a, b):
return a + b
print(add(3, 5)) # 8
デフォルト引数
引数にデフォルト値を設定すると、省略時にその値が使用されます。
def greet(name="ゲスト"):
print(f"こんにちは、{name}さん!")
greet() # こんにちは、ゲストさん!
greet("花子") # こんにちは、花子さん!
キーワード引数
キーワード引数を使うと、関数呼び出し時に引数名を明示でき、順番を気にせずに値を渡せます。
def introduce(name, age):
print(f"{name}さんは{age}歳です。")
introduce(age=25, name="太郎") # 太郎さんは25歳です。
可変長引数
複数の引数を1つの変数にまとめるには、*args
を使います。
def sum_numbers(*args):
return sum(args)
print(sum_numbers(1, 2, 3, 4)) # 10
キーワード付き可変長引数
キーワード引数を辞書として受け取る場合、**kwargs
を使用します。
def person_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
person_info(name="太郎", age=30, country="日本")
引数のアンパック
リストや辞書を展開して関数に渡すことも可能です。
def greet(name, age):
print(f"{name}さんは{age}歳です。")
info = ["太郎", 25]
greet(*info) # 太郎さんは25歳です。
data = {"name": "花子", "age": 28}
greet(**data) # 花子さんは28歳です。
引数の順序
Pythonでは引数の順序が重要です。
def func(a, b=2, *args, c=3, **kwargs):
print(a, b, args, c, kwargs)
func(1, 10, 20, 30, c=40, d=50)
# 出力: 1 10 (20, 30) 40 {'d': 50}
lambda関数の引数
無名関数(lambda関数)にも引数を渡せます。
square = lambda x: x ** 2
print(square(4)) # 16
add = lambda x, y: x + y
print(add(2, 3)) # 5
関数の引数の型アノテーション
関数の引数と戻り値の型を明示することができます。
def multiply(x: int, y: int) -> int:
return x * y
print(multiply(3, 4)) # 12