Python海象运算符

作者:小K

来源:麦叔编程

最近看到有Pythoner写了一段代码:

v = (a := 5)
print(v)

我一脸懵,这是什么写法?

一个冒号 + 一个等号 这我没见过啊!

我遂去试它的执行结果,

Python海象运算符

直接报语法错误了,但是那位Pythoner却能运行出5的结果。

于是我就去翻Python3.6以后的新特性(我因为是3.6的时候入门Python的)。

然后查到3.8以后出现一个玩意叫做赋值表达式

因为:=这个运算符看着像一个海象,所以也被称为海象运算符。

Python海象运算符

海象运算符:==的功能相同,都能执行赋值语句,但它可以写赋值表达式。

v = (a = 5)
print(v)

运行之后直接报错了。

Python海象运算符

但是使用海象运算符:=,(Python3.8后)

Python海象运算符

是能正常运行结果出来的。

什么时候可能用到呢?

如果我想写判断字符长度是否大于10,如果大于10,则输出该字符串的长度。这个功能时,我会这样写:

string = input("Please input a word: ")

if len(string) > 10:
    print(f'This length of word is {len(string)}')

上面的len(string)出现了两次。

如果使用赋值表达式的话,可以这样写:

string = input("Please input a word: ")

if (n:=len(string)) > 10:
    print(f'This length of word is {n}')

这样写的话len(string)就只出现了一次,因为在len方法执行的时候就把值赋给了n,所以我们后面的代码就可以使用n变量。

后记

海象运算符虽香,但也不要乱用。

虽然海豹运算符能减少一定的引用次数,但是个人觉得会降低代码的可读性。

如果开发的逻辑比较单一的情况,可以将其运用,使代码提升美感,

但是在复杂的代码逻辑中还是尽量不要出现。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章