1. ホーム
  2. パイソン

[解決済み】*args と **kwargs の意味は何ですか?[重複しています]

2022-04-03 18:01:49

質問

具体的にどのような *args**kwargs というのは?

Pythonのドキュメントによると、見たところ、引数のタプルを渡しているようです。

def foo(hello, *args):
    print hello

    for each in args:
        print each

if __name__ == '__main__':
    foo("LOVE", ["lol", "lololol"])

これがプリントアウトされます。

LOVE
['lol', 'lololol']

効果的な使い方は?

どのように解決するのですか?

パッティング *args または **kwargs を関数定義の引数リストの最後の項目として使用すると、その関数が任意の数の引数やキーワード引数を受け入れることができるようになります。

例えば、引数をいくつ与えても、その引数の合計を返すような関数を書きたい場合は、次のように書くことができます。

def my_sum(*args):
    return sum(args)

オブジェクト指向プログラミングでは、関数をオーバーライドするときに、ユーザーが渡した引数で元の関数を呼び出すという使い方が一般的でしょう。

実際に呼び出す必要はありません argskwargs というのは、単なる慣習に過ぎません。それは *** というのがあって、それが魔法をかける。

Pythonの公式ドキュメントには をより詳しく見てみましょう。 .