ホームページ > バックエンド開発 > Python チュートリアル > 一重スター演算子と二重スター演算子 (*) と () は、Python 関数定義の変数引数をどのように処理しますか?

一重スター演算子と二重スター演算子 (*) と () は、Python 関数定義の変数引数をどのように処理しますか?

Linda Hamilton
リリース: 2024-12-24 16:57:10
オリジナル
771 人が閲覧しました

How Do Single and Double Star Operators (*) and () Handle Variable Arguments in Python Function Definitions?

パラメータのアンパック: 関数定義の *

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' には次が含まれます:

  • kind = 123
  • args = ('a', 'b')
  • バー =なし
  • kwargs = {'apple': 'red'}

引数リストのアンパック

*: アンパックにも使用できます呼び出し時の引数リスト関数:

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 サイトの他の関連記事を参照してください。

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