首頁  >  文章  >  後端開發  >  什麼是賦值表達式以及它們在 Python 3.8 中如何運作?

什麼是賦值表達式以及它們在 Python 3.8 中如何運作?

Patricia Arquette
Patricia Arquette原創
2024-11-01 13:05:02125瀏覽

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,賦值表達式的值也與 expr 相同。

基本原理

主要動機引入賦值表達式的目的是在以前禁止的列表推導式和 lambda 函數等結構中啟用賦值。它還有助於互動式調試,無需程式碼重構。

使用案例

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)
  • 簡化列表推導式

    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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn