0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python初心者】関数の引数の種類まとめ:仮引数実引数・位置・キーワード・デフォルト・可変長

Last updated at Posted at 2025-04-19

Pythonで関数を学んでいる中で、「仮引数」「実引数」「位置引数」「キーワード引数」など引数に関する言葉がよく登場します。
それぞれ意味や使い方が異なり、初心者には混乱しがちです。

そこで、自分の理解を整理するために、具体例とともにそれぞれの違いをまとめてみました。

仮引数(parameter)

関数を定義する側で使う変数名です。
この時点では値は決まっておらず、名前だけが決まっている状態です。

def greet(name):  # ← ここが仮引数
    print("Hello, " + name)

実引数(argument)

関数を呼び出すときに渡す具体的な値のことです。
関数に「これを処理して」と渡すデータです。

greet("Alice")  # ← ここが実引数

位置引数(positional argument)

引数の順番が意味を持つ渡し方です。
定義された順番に対応して値が渡されます。

def introduce(name, age):
    print(f"My name is {name}, I'm {age} years old.")

introduce("Bob", 25)

キーワード引数(keyword argument)

引数名を明示して値を渡す方法です。
順番を入れ替えても問題なく、可読性が上がります。

introduce(age=30, name="Charlie")

位置引数とキーワード引数の併用

位置引数のあとにキーワード引数を使うことで、柔軟に関数を呼び出せます。

introduce("Diana", age=22)  # OK

ただし、キーワード引数を先に書くとエラーになります。

introduce(age=22, "Diana")  # ❌ SyntaxError

デフォルト引数(default argument)

関数を定義するときに、あらかじめ値を設定しておける引数です。
呼び出し時にその引数が省略された場合、デフォルト値が使われます。

def greet(name="Guest"):
    print("Hello, " + name)

greet()           # → Hello, Guest
greet("Erika")    # → Hello, Erika

🔸 ポイント

  • 引数を渡さなかったとき → デフォルト値が使われる
  • 引数を渡したとき → 渡した値が使われ、デフォルト値は無視される

可変長引数(variable-length argument)

関数に引数をいくつでも渡せるようにする仕組みです。
主に次の2種類があります。

*args(複数の位置引数を受け取る)

*args を使うと、複数の位置引数を1つのタプルとして受け取れます。

def show_colors(*args):
    for color in args:
        print(color)

show_colors("red", "green", "blue")

実行結果:

red
green
blue

**kwargs(複数のキーワード引数を受け取る)

**kwargs を使うと、複数のキーワード引数を1つの辞書として受け取れます。

def show_prices(**kwargs):
    for item, price in kwargs.items():
        print(f"{item}: {price} yen")

show_prices(apple=120, banana=80, orange=100)

実行結果:

apple: 120 yen
banana: 80 yen
orange: 100 yen

🔸 ポイント

  • *args は「いくつ渡してもOKな位置引数」
  • **kwargs は「いくつ渡してもOKなキーワード引数」
  • *args → タプルで受け取る
  • **kwargs → 辞書で受け取る

まとめ(比較表)

用語 意味
仮引数 関数定義時に使う変数名 def func(x):x
実引数 関数呼び出し時に渡す具体的な値 func(10)10
位置引数 順番どおりに渡す実引数 func("A", "B")
キーワード引数 名前付きで渡す実引数 func(x="A", y="B")
デフォルト引数 渡されなかったときに使われる値 def func(x=10):10
可変長引数(*args) 任意の数の位置引数をタプルで受け取る def func(*args):
可変長引数(**kwargs) 任意の数のキーワード引数を辞書で受け取る def func(**kwargs):

おわりに

引数にはいくつか種類がありますが、それぞれの違いを理解しておくと、関数を柔軟に使いこなせるようになると思いました。

実際にいくつかのパターンを書いてみて、挙動を確かめながら覚えていきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?