1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Python】*argsと**kwargs

Posted at

【Python】*argsと**kwargs

*argsとは・・任意の数の引数を受け取る関数名
(argumentsの略)
**kwargsとは・・呼び出し側のキーワード引数をまとめて受け取れる関数名
(keyword argumentsの略)

ちなみに、argumentとはIT業界では、関数やメソッドを呼び出す際に、引き渡される値や変数のことみたいです。

*argsについて

args
def number(*args):
    print(args)


number(1, 2, 3, 4, 5)
number(6, 7, 8, 9, 10)
実行結果
(1, 2, 3, 4, 5)
(6, 7, 8, 9, 10)

※引数をタプルとして受け取っています。

残りは任意の引数を受け取る方法
def number(a, b, *args):
    print('a:', a)
    print('b:', b)
    print('rest:', args)

number(1, 2)
number(1, 2, 3, 4)
実行結果
a: 1
b: 2
rest: ()
a: 1
b: 2
rest: (3, 4)


**kwargsについて

kwargs
def number(**kwargs):
    print(kwargs)


number()
number(a=1, b=2)
実行結果
{}
{'a': 1, 'b': 2}

※キーワード引数は辞書で受け取っています。

デフォルト引数との組み合わせ
def number(a=0, **kwargs):
    print('a:', a)
    print('kwargs:', kwargs)

number()
number(a=1, b=2)
number(a=1, b=2, c=3, d=4)
実行結果
a: 0
kwargs: {}
a: 1
kwargs: {'b': 2}
a: 1
kwargs: {'b': 2, 'c': 3, 'd': 4}

*argsと**kwargsの組み合わせ

def number(*args, **kwargs):
    print('args:', args)
    print('kwargs:', kwargs)

number()
number(a=1, b=2)
number(1, 2, c=3, d=4)
実行結果
args: ()
kwargs: {}
args: ()
kwargs: {'a': 1, 'b': 2}
args: (1, 2)
kwargs: {'c': 3, 'd': 4}
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?