【Python】Python ~ 可変長引数 / *args **kwargs ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/10/31/000133
https://dk521123.hatenablog.com/entry/2020/05/19/000000

等ででてきた  *args **kwargs について、
改めてちゃんと学ぶ

目次

【1】*args
【2】**kwargs
【3】使用上の注意

【1】*args

* args = arguments
* タプル版の可変長引数
* Python での読み方は「可変長位置引数」

【2】**kwargs

* kwargs(キーアーグス) = keyword arguments
* 辞書版(dict)の可変長引数
* Python での読み方は「可変長キーワード引数」

【3】使用上の注意

* *args, **kwargs 両方使う場合、*args, **kwargs の順番で。
 => 逆だとエラーになる

OKケース

def demo(*args, **kwargs):
  print(args) # (1, 2)
  print(kwargs) # {'name': 'Mike'}

demo(1, 2, name="Mike")

NGケース

def demo(**kwargs, *args):
  print(args)
  print(kwargs)

demo(1, 2, name="Mike")

#    def demo(**kwargs, *args):
#                       ^
#SyntaxError: invalid syntax

参考文献

https://qiita.com/ys_dirard/items/6009405b93c5c6ad335d

関連記事

Python ~ 基本編 / 文字列 ~
https://dk521123.hatenablog.com/entry/2019/10/12/075251
Python ~ デコレータ @xxxx ~
https://dk521123.hatenablog.com/entry/2020/05/19/000000
Python ~ 基本編 / 日付・日時あれこれ ~
https://dk521123.hatenablog.com/entry/2022/02/01/000000
Python ~ 基本編 / 正規表現
https://dk521123.hatenablog.com/entry/2019/09/01/000000
Python ~ 基本編 / 正規表現あれこれ ~
https://dk521123.hatenablog.com/entry/2020/10/15/000000
Python ~ 基本編 / コメント文 ~
https://dk521123.hatenablog.com/entry/2019/10/23/212149
Python ~ 基本編 / JSON
https://dk521123.hatenablog.com/entry/2019/10/19/104805
Python ~ 基本編 / JSONあれこれ ~
https://dk521123.hatenablog.com/entry/2022/02/14/000000