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'} と表示されます