ホームページ >バックエンド開発 >Python チュートリアル >代入式とは何ですか? Python 3.8 ではどのように機能しますか?

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 13:05:02212ブラウズ

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

「Walrus」演算子を使用した代入式: Python 3.8 の機能

Python 3.8 では、「:=」演算子を使用した「代入式」として知られる新しい概念が導入されました。 、一般に「セイウチ」演算子と呼ばれます。

構文、セマンティクス、および文法

代入式は name := expr の形式になります。ここで exprは任意の有効な Python 式であり、name は識別子です。セマンティクスは、式の値が name に割り当てられ、代入式の値も expr と同じであるということです。

根拠

主な動機代入式の導入により、以前は禁止されていたリスト内包表記やラムダ関数などの構造内での代入が可能になりました。また、コードのリファクタリングを必要とせずに対話型のデバッグも容易になります。

gt;ユースケース

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 3.8 ではどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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