ホームページ > バックエンド開発 > Python チュートリアル > `*args` と `kwargs` は Python 関数の変数引数をどのように処理しますか?

`*args` と `kwargs` は Python 関数の変数引数をどのように処理しますか?

DDD
リリース: 2024-12-23 02:21:13
オリジナル
495 人が閲覧しました

How Do `*args` and `kwargs` Handle Variable Arguments in Python Functions?

パラメータの (スター/アスタリスク) と * (二重スター/アスタリスク) の重要性を理解する

Python 関数定義では、 および * 演算子は、任意の数の演算子を処理するための強力なイディオムを提供します。 argument.

位置引数: *args

  • *args パラメーターを使用すると、関数は可変数の位置引数を受け入れることができます。
  • これらの引数はタプルに収集され、 function.

例:

def foo(x, y, *args):
    pass

foo(1, 2, 3)
# args = (3,)
ログイン後にコピー

キーワード引数: kwargs**

  • **kwargs パラメータを使用すると、関数は任意の数のキーワードを受け入れることができます引数。
  • これらの引数は、キーが引数名、値が引数の値であるディクショナリに収集されます。

例:

def bar(x, y, **kwargs):
    pass

bar(x=1, y=2, name='John', age=27)
# kwargs = {'name': 'John', 'age': 27}
ログイン後にコピー

固定と変数の混合引数

  • args と *kwargs の両方を通常の固定引数と組​​み合わせて、関数に柔軟性を与えることができます。定義。

例:

def foo(kind, *args, bar=None, **kwargs):
    print(kind, args, bar, kwargs)

foo(123, 'a', 'b', apple='red')
# 123 ('a', 'b') None {'apple': 'red'}
ログイン後にコピー

その他の用途

    • を呼び出すときに引数リストを解凍するために使用できます。 function.
  • Python 3 では、* を代入の左側で使用して、イテラブルを変数にアンパックできます。
  • Python 3.6の後の位置引数を制限する新しい構文を導入します。 *.

注:

  • Python は辞書を使用してキーワード引数を表し、Python 3.6 では挿入順序を維持します。
  • kwargs 辞書は、Python 3.7 以降で挿入順序を維持します。 CPython 以外の実装でも。

以上が`*args` と `kwargs` は Python 関数の変数引数をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート