简介

Python 海象运算符是在 PEP 572 中提出,并在 Python3.8 版本并入发布。

海象运算符的英文原名叫 Assignment Expresions ,即 赋值表达式。海象表达式由一个 : 和 一个 = 组成,即::= 。我们一般称作 walrus operator(海象运算符),因为它看起来就是一个海象旋转 90° 而成。
语法
海象运算符的语法格式是:

(variable_name := expression or value)
即一个变量名后跟一个表达式或者一个值,这个和赋值运算符 = 类似,可以看作是一种新的赋值运算符。

用法
1.用于 if-else 条件表达式:
常规写法:

a = 15
if a > 10:
    print('hello word!')
	
海象运算符:

if a := 15 > 10:
    print('hello word!')

2. 用于 while 循环:

常规写法:

n = 6
while n:
    print('hello word!')
    n -= 1

海象运算符:

n = 6
while (n := n - 1) + 1: # 需要加1是因为执行输出前n就减1了
    print('hello word!')

3.读取文件:

常规写法:

fp = open("test.txt", "r")
while True:
    line = fp.readline()
    if not line:
        break
    print(line.strip())
fp.close()

海象运算符:

fp = open("test.txt", "r")
while line := fp.readline():
    print(line.strip())

总结

在合适的场景中使用海象运算符可以降低程序复杂性,简化代码。一方面,可以写出优雅而简洁的 Python 代码;另一方面,可以看懂他人的代码。在一些实例中,甚至可以提高程序的性能。