」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 什麼是賦值表達式以及為什麼要將它們引入 Python 3.8?

什麼是賦值表達式以及為什麼要將它們引入 Python 3.8?

發佈於2024-11-12
瀏覽:179

What are Assignment Expressions and Why Were They Introduced to Python 3.8?

理解 Python 3.8 中的賦值表達式

自 Python 3.8 起,「海象」運算子 (:=) 向該語言引入了賦值表達式。這項新功能允許程式設計師在推導式和 lambda 函數中賦值,而這些值以前僅限於常規賦值。

賦值表達式的基本原理

賦值表達式背後的主要動機是使更簡潔和更簡潔。在不支援傳統分配的場景中高效率的程式碼。例如,賦值表達式方便:

  • 條件值取得:可以更簡潔地取得條件值,如Python文件中提供的互動式偵錯範例所示。
  • 簡化列表推導式:可以透過將中間值分配給推導式中的變數來簡化複雜列表推導式,使程式碼更具可讀性和可管理性。

語法、語意、語法

賦值表達式遵循特定語法:name := expr,其中 name 是標識符,expr 是任何有效的 Python 表達式。賦值表達式的值與表達式 expr 相同,但附加的副作用是將值賦給目標名稱。

賦值表達式在幾個關鍵方面與常規賦值語句不同:

  • 它們是表達式,而不是語句,因此可以出現在需要表達式的上下文中。
  • 與常規賦值相比,它們具有不同的求值順序(從右到左)和不同的優先權。
  • 它們不支援多個目標、對非單一名稱的賦值、可迭代打包/解包、內聯類型註解或增強賦值操作。

引入賦值表達式的原因

儘管提出了類似概念的PEP 379 被撤回,但PEP 572 出於以下幾個原因向Python 引入了賦值表達式:

  • 為了增強程式碼的可讀性和可維護性,特別是在推導式和lambdas。
  • 無需程式碼重構即可啟用互動式偵錯。
  • 提供更有效的分配條件值和簡化列表推導式的方法。
  • 對齊 Python 語法與其他支援賦值表達式的現代程式語言一起使用。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3