関数定義で引数に*
と**
(1個または2個のアスタリスク)をつけると、呼び出し時に任意の数の引数(可変長引数)を指定できる。慣例として*args
, **kwargs
という名前が使われることが多いが、*
と**
が頭についていれば他の名前でも問題ない。以下のサンプルコードでは*args
, **kwargs
という名前を使う。
*args: 複数の引数をタプルとして受け取る
def shop(name,*args):
print("flowershop:", name)
for arg in args:
print(arg)
shop("Iris","Open: 9:30 am","Close: 10:30 pm","Monday and holidays are closed.")
flowershop: Iris
Open: 9:30 am
Close: 10:30 pm
Monday and holidays are closed.
**kwargs: 複数のキーワード引数を辞書として受け取る
**kwargs
のように**
をつけた引数を定義すると、呼び出し時に任意の数のキーワード引数を指定できる。
関数の中では引数名がキーkey
、値がvalue
となる辞書として受け取られる。
def shop(name, **kwargs):
keys = sorted(kwargs.keys())
for kw in keys:
print(kw, ":", kwargs[kw])
shop("Iris",bouquet="Sunflower",plants="Pachira",dried="Rose")
bouquet : Sunflower
dried : Rose
plants : Pachira
*argsと**kwargsを組み合わせて受け取る
def shop(name,*args, **kwargs):
print("flowershop:", name)
for arg in args:
print(arg)
print("**Recommended**")
keys = sorted(kwargs.keys())
for kw in keys:
print(kw, ":", kwargs[kw])
shop("Iris","Open: 9:30 am","Close: 10:30 pm","Monday and holidays are closed.",bouquet="Sunflower",plants="Pachira",dried="Rose")
flowershop: Iris
Open: 9:30 am
Close: 10:30 pm
Monday and holidays are closed.
**Recommended**
bouquet : Sunflower
dried : Rose
plants : Pachira
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント