Python 3.8 的赋值表达式与海象运算符

本文介绍了Python 3.8中的新特性——赋值表达式(海象运算符)。通过示例展示了如何使用这个运算符来简化代码,尤其是在条件判断和循环中的应用,提醒开发者在追求代码压缩的同时要保持可读性。
摘要由CSDN通过智能技术生成

1. 简介

Python 3.8 引入了 PEP 572 中描述的新特性——赋值表达式,该语法由 Emily Morehouse 实现。没错,就是下面这个妹子。


2. 语法与语义

赋值表达式,这是 PEP 572 标题中使用的官方正式名称,英文是 Assignment Expressions。也可以称作具名表达式,英文是 Named Expressions。它涉及到的新操作符 := 被亲切地称作海象运算符,英文是 the walrus operator,因为冒号 : 像是海象的一对小眼睛,等号 = 像是海象的一对长牙。

赋值表达式的语法是 NAME := expr,顾名思义,它完成了两个操作:

  • 计算表达式 expr 的结果
  • 把结果赋值给名为 NAME 的变量

注意:

  • 在大多数 Python 表达式可以出现的上下文中,都可以使用赋值表达式。一些例外情况在 PEP 572 中有所提及,刚开始使用不用在意,大体准则是不要在没有必要或者影响代码可读性的时候使用赋值表达式。
  • 变量名 NAME 是有效的 Python 标识符,表达式 expr 可以是除了不带括号的元组以外的任意合法 Python 表达式。
  • 赋值表达式的值与它包含的表达式 expr 的值是一样的,同时还会把该值赋给 NAME

3. 作用与案例

先来看一个最简单的:

>>> walrus = False
>>> print(walrus)
False
>>> print(walrus := True)
True
>>> walrus
True

可见 print(walrus := True) 一句话,做了两句话的工作:

  • walrus = True
  • print(walrus)

你想直接写成 print(walrus = True)?在 Python 中是不行的:

>>> print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值