ホームページ >バックエンド開発 >Python チュートリアル >Python 関数パラメータの `*args` と `kwargs` の違いは何ですか?
関数パラメータにおける (ダブルスター) と (スター) の重要性を明らかにする*
Python では、関数args と *kwargs で示されるパラメータは、さまざまなメカニズムとして機能します。任意の引数に対応します。
*args による位置引数のアンパック
*args パラメーターは、事前定義された位置引数を超えるすべての位置引数をタプルに集めます。例:
def foo(*args): for arg in args: print(arg)
この関数は、次のような任意の数の位置引数を受け入れることができます。
foo(1) # Output: 1 foo(1, 2, 3) # Output: 1 2 3
kwargs**
一方、**kwargs はすべてのキーワード引数をDictionary.def bar(**kwargs): for key, value in kwargs.items(): print(key, value)キーワード引数を指定してこの関数を呼び出すと、次の結果が得られます:
bar(name='John', age=30) # Output: name John, age 30
args と kwargs*
両方のイディオムを組み合わせて、固定と可変を混在させることができます引数:def foo(kind, *args, bar=None, **kwargs): print(kind, args, bar, kwargs)この関数は次のように呼び出すことができます:
foo(123, 'a', 'b', apple='red') # Output: 123 ('a', 'b') None {'apple': 'red'}
追加の使用例
def foo(bar, lee): print(bar, lee) baz = [1, 2] foo(*baz) # Output: 1 2
first, *rest = [1, 2, 3, 4] # first = 1 # rest = [2, 3, 4]
def func(arg1, arg2, arg3, *, kwarg1, kwarg2): passこの関数には、3 つの位置引数と * の後に任意の数のキーワード引数が必要です。
以上がPython 関数パラメータの `*args` と `kwargs` の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。