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

Susan Sarandon
リリース: 2024-10-30 21:42:30
オリジナル
181 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!