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

Patricia Arquette
發布: 2024-11-01 13:05:02
原創
124 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!