首页  >  文章  >  后端开发  >  什么是赋值表达式以及它们在 Python 中如何工作?

什么是赋值表达式以及它们在 Python 中如何工作?

Susan Sarandon
Susan Sarandon原创
2024-10-30 21:42:30181浏览

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

Python 中的赋值表达式:“海象”运算符 (=:)

Python 3.8 中引入,利用“海象”运算符 (:=) 提供赋值表达式显着的语言增强,支持在推导式和 lambda 中进行赋值。

语法和语义

赋值表达式是形式为 name := expr 的命名表达式,其中 name 是标识符,expr 是任何有效的表达式。该表达式计算 expr 的值,同时将该值分配给 name。

介绍的基本原理

添加赋值表达式的主要动机是:

  • 允许在禁止传统赋值的上下文中进行赋值,例如列表推导式和 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) 简化列表推导式

示例:

<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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn