args(可変長引数)について
args(以下可変長引数)は引数名の前に「*」(アスタリスクマーク)をつけて使用します。 なお、可変長引数はタプルとして機能し、引数は複数個指定することが可能です。 (タプルとは作成後の変更が不可能なリストで()で囲んであります。リストは[]で囲む。)
def add_num(*args): i = 0 for num in args: i += num return i add_num(1,2,3,4,5,6,7,8,9,10) =>55
ちなみにargsの部分は何でも大丈夫です。args(argumentsの略)がデフォルトなので基本的には argsを使用します。
kwargs(可変長引数)について
kwargsも可変長引数として使用できます。argsと似ており、引数名の前に「**」(アスタリスクを二つ)を つけて使用します。 kwargsはディクショナリとして機能します(keyが引数名、valueが値)
def test_func(**kwargs) print(kwagrs) test_func(a=1,b=2) =>{'a': 1, 'b': 2}
kwargsも引数名は何にしても大丈夫ですが、デフォルトとしてkwargsがそのまま使用されることが 多いです。
*の正体
*はunpacking operaterといって、*をつけたリストやタプルを分解して各変数に再代入します。
list_a = [1,2,3] list_b = [4,5,6] list_a_b = [**list_a, **list_b] list_a_b =>[1,2,3,4,5,6]