使用海象运算符:=
在某些地方可以简化代码。
场景一:
ls = [0, 1, 2]
if len(ls) >= 2:
print(len(ls))
# 为了减少调用 len 的次数
ls = [0, 1, 2]
ls_length = len(ls)
if ls_length >= 2:
print(ls_length)
# 使用海象运算符简化代码
ls = [0, 1, 2]
if (ls_length := len(ls)) >= 2: # 由于 := 优先级小于 >=,所以要加括号。
print(ls_length)
海象运算符完成的工作实际上类似于以前写 C/C++ 时写的在if
、while
等语句的条件中写赋值语句,这样可以同时完成赋值和判断,而且由于:=
和=
长的不一样,就避免了可读性差的问题。
场景二:
dig_ls = [0, 1, 2]
ls = [len(dig_ls), len(dig_ls) + 1, len(dig_ls) + 2]
# 使用海象运算符
dig_ls = [0, 1, 2]
ls = [dig_ls_length := len(dig_ls), dig_ls_length + 1, dig_ls_length + 2]
:::warning 注意:海象运算符不能当普通的赋值运算符使用,它基本上只能被用于上面两种语法场景。 :::