首页  >  文章  >  后端开发  >  什么是赋值表达式以及它们在 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) 简化列表推导式

  • 之前:

    <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