ホームページ >バックエンド開発 >Python チュートリアル >一重スター演算子と二重スター演算子 (*) と () は、Python 関数定義の変数引数をどのように処理しますか?
パラメータのアンパック: 関数定義の と *
Python の関数定義では、 (スター) および * (二重星) 演算子は、さまざまな数のargument.
シングルスター演算子 (*)
演算子 (「var-args」または「splat」とも呼ばれます) は、渡されたすべての位置引数を収集します関数を args というタプルに変換します。たとえば、以下の定義では:
def foo(x, y, *args): pass
args が foo(1, 2, 3, 4, 5) で呼び出された場合、args タプル(3, 4, 5) が含まれます。
ダブルスター演算子()**
演算子 (「var-kwargs」または「キーワード スプラット」とも呼ばれる) は、すべてのキーワード引数を kwargs** という名前の辞書として取得します。次の定義では:
def bar(x, y, **kwargs): pass
bar が bar(1, 2, name='Alice', age=30) で呼び出されるとき、kwargs辞書には {'name': 'Alice', 'age': が含まれます。 30}.
標準引数と可変引数の混合
関数定義は、* を使用して通常の引数と可変引数を組み合わせることができます:
def foo(kind, *args, bar=None, **kwargs): pass
で呼び出された場合foo(123, 'a', 'b', apple='red')、変数'kind'、'args'、'bar'、および 'kwargs' には次が含まれます:
引数リストのアンパック
*: アンパックにも使用できます呼び出し時の引数リスト関数:
def foo(bar, lee): pass baz = [1, 2] foo(*baz) # Unpacks baz into [1, 2] for bar and lee
拡張反復可能アンパック (Python 3)
Python 3 では、代入の左側で *l を使用して反復可能をアンパックできます。複数の変数:
first, *rest = [1, 2, 3, 4] # first = 1, rest = [2, 3, 4]
キーワードのみの引数(Python 3)
Python 3 では キーワードのみの引数 が導入されています。* 以降はキーワード引数のみが許可されます:
def func(arg1, arg2, arg3, *, kwarg1, kwarg2): pass
以上が一重スター演算子と二重スター演算子 (*) と () は、Python 関数定義の変数引数をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。