関数定義で引数に*と**(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この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
    
  
コメント