Agile育成ブログ
未来を変える喜びを
Python

*args 、 **kwargsnについて理解する


Warning: count(): Parameter must be an array or an object that implements Countable in /home/xs638785/agile-software.site/public_html/wp-content/plugins/rich-table-of-content/functions.php on line 490

*args 、 **kwargs は、関数が引数をうけとる方法の1つだと考えましょう。

関数定義で引数に***(1個または2個のアスタリスク)をつけると、任意の数の引数(可変長引数)を指定できる。

Pythonでは、複数のデータの組み合わせから構成されているデータを表現する場合、タプル という種類のオブジェクトを利用します。タプルは変更ができません。

  • *args: 複数の引数をタプルとして受け取る
  • **kwargs: 複数のキーワード引数を辞書として受け取る

hello関数内のargs引数に、呼び出し時に渡された2つの引数(“hiroki”, “saito”)がタプルに入ってprint文でargsを表示しています。このように *args は単純に引数を受け取る方法の1つに過ぎません。

def hello(*args):
    print(args)
    
hello("hiroki", "saito")  # ('hiroki', 'saito') と表示されます

hello関数には name="hiroki", hometown="osaka" という値を渡してprint文でkwargsを表示しています。

def hello(**kwargs):
    print(kwargs)

hello(name="hiroki", hometown="osaka")  # {'name': 'hiroki', 'hometown': 'osaka'} と表示されます

You cannot copy content of this page