使用海象运算符:=在某些地方可以简化代码。
场景一:
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 注意:海象运算符不能当普通的赋值运算符使用,它基本上只能被用于上面两种语法场景。 :::
