python walrus操作符
Python 3.8 引入了一种新的操作符 :=
,称为 walrus 操作符。它可以在表达式中同时进行赋值和比较操作,可以使代码更加简洁和易读。下面是一个简单 demo
# 通常的写法
with open('file.txt') as f:
lines = f.readlines()
if lines:
print(lines[0])
# 使用 walrus 操作符
with open('file.txt') as f:
if lines := f.readlines():
print(lines[0])
可以看出我们使用 walrus 操作符将 f.readlines()
的结果赋值给 lines
变量,并在同一行中检查 lines
是否为空。这样可以使代码更加简洁和易读。
Walrus 操作符可以用在很多场景中,例如:
在 while 循环中,可以使用 Walrus 操作符来避免重复计算。例如:
while (n := len(input())) > 0:
print(n)
在列表推导式中,可以使用 Walrus 操作符来避免重复计算。例如:
numbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers if (s := n**2) > 10]
print(squares)
在条件表达式中,可以使用 Walrus 操作符来避免重复计算。例如:
if (n := len(input())) > 0:
print(n)
需要注意的是,Walrus 操作符虽然方便,但是过度使用会导致代码难以理解和维护,因此需要谨慎使用。
walrus操作符 作为一个新特性,目前看来,个人感觉用处不算多,虽然能少量减少代码量,但是不建议过度使用,用来尝鲜还不错