Python 任意引数リスト、任意キーワード引数の使い方(*args **keywords)

任意引数リストや、任意キーワード引数を用いると関数の引数を任意の個数受け付けられるようにできます。

任意個数のキーワード引数 **keywords

**keywordsのように変数名に**をつけます。引数リストの一番最後に書きます。

**keywordsは辞書型です。

def status(name, **info):
    print('名前:', name)
    for i in info:
        print(i, ":", info[i])

status("ライラ",HP="159",MP="54",Atack="キック")
print('+'*30)
status("ルカ",HP="120",MP="3")

【結果】

名前: ライラ
HP : 159
MP : 54
Atack : キック
++++++++++++++++++++++++++++++
名前: ルカ
HP : 120
MP : 3

任意引数リスト *args

*argsのように変数名に*をつけると任意の個数の引数を取得できます。仮引数リストの最後に書きます。

*argsはタプルです。**keywordsと併用する場合は、**kyewordsより前に書きます。

以下の例は、任意の引数リストを受け取って、デフォルト引数のtoを使って引数リストを連結しています。任意引数リストの後にキーワード引数を書くことができます。

def route(*args, to="~"):
    return to.join(args)

myroute = route('日本','タイ','オーストリア','パタゴニア')
print(myroute)

【結果】

日本~タイ~オーストリア~パタゴニア

以下の例は、任意引数リスト(*args)と任意個数のキーワード引数(**options)の両方を使っています。

def status(*args,**options):
    for arg in args:
        print(arg)
    for o in options:
        print(o,':',options[o])

status('なぎさ','12歳',Personality='穏やか',hobby='旅行')
print('+'*30)
status('りん','18歳',Personality='荒い',趣味='魔術')

【結果】

なぎさ
12歳
Personality : 穏やか
hobby : 旅行
++++++++++++++++++++++++++++++
りん
18歳
Personality : 荒い
趣味 : 魔術
スポンサーリンク
スポンサーリンク