ホームページ  >  記事  >  バックエンド開発  >  代入式とは何ですか?また、Python ではどのように機能しますか?

代入式とは何ですか?また、Python ではどのように機能しますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 21:42:30188ブラウズ

What are Assignment Expressions and How Do They Work in Python?

Python の代入式: "Walrus" 演算子 (=:)

Python 3.8 で導入された、"walrus" 演算子 (:=) を利用した代入式は、言語の大幅な機能強化により、内包表記とラムダ内での代入が可能になりました。

構文と意味

代入式は、name := expr という形式の名前付き式です。ここで、name は識別子、expr は任意の有効な式。式は expr の値として評価され、同時にその値を name に割り当てます。

導入の根拠

代入式を追加する主な動機は次のとおりです。

  • リスト内包表記やラムダなど、従来の代入が禁止されていたコンテキストでの代入を許可します。
  • 簡単な値の代入を容易にすることで対話型デバッグを強化します。

使用例

a) 条件値の取得

の代わりに:

<code class="python">command = input("> ")
while command != "quit":
    print("You entered:", command)
    command = input("> ")</code>

代入式により次のことが可能になります:

<code class="python">while (command := input("> ")) != "quit":
    print("You entered:", command)</code>

b) リスト内包表記の簡略化

例:

<code class="python">[(lambda y: [y, x/y])(x+1) for x in range(5)]</code>

次のように簡略化できます:

<code class="python">[[y := x+1, x/y] for x in range(5)]</code>

通常の代入との主な違い

代入式は通常の代入式とは異なりますいくつかの側面での代入:

  • それらは右から左に評価されます。
  • それらはカンマとは異なる優先順位を持ちます。
  • それらは複数のターゲットをサポートしません。単一以外の名前への代入、または反復可能なパッキング/アンパッキング。
  • インライン型の注釈と拡張代入もサポートされません。

以上が代入式とは何ですか?また、Python ではどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。