Python 3.8 究竟要不要升级?用过之后的小哥这样说
通过使用 walrus 运算符,我们可以在 while 循环的表达式中读取并分配所读数值,这样还能够避免在 while 循环外显式声明变量。下面是一个例子:
正则表达式匹配是一个需要两个步骤的过程。在第一步中,我们检查是否发生匹配,在下一步中,我们提取子组: 正则表达式匹配 从上面的代码可以看出,如果匹配,我们正在重新计算 re.match(info),这会根据数据降低程序的速度。 上述代码利用 walrus 运算符可以重写如下,并且可以避免重新计算: 正则表达式匹配:=
1. 给变量赋值 a = 5 #Valid a := 5 #InValid empty_list = [] #Valid empty_list := [] #InValid 如上所示,我们不能将=运算符与:=运算符一起使用,walrus 运算符只能是表达式的一部分。 2. 加减运算 a += 5 #Valid a :+=5 # Invalid 3. lambda 函数中的赋值表达式 (lambda: a:= 5) # Invalid lambda: (a := 5) # Valid, but not useful (var := lambda: 5) # Valid
walrus 运算符是作为 pep-572(python 增强建议)的一部分引入的。 一个面向大众的工具,必须得到发明者圭多·范·罗森(Guido van Rossum)和他所选的代表们的批准。因此,围绕 walrus 运算符的争论很多,其中部分内容如下: 1. 句法变异 开发人员提出了许多替代「:=」,例如表达式->名称、名称->表达式、{表达式} 名称等。很少有使用现有关键字的建议,而其他使用新的运算符的建议。 2. 向后兼容性 这个特性不会向后兼容,也不会在以前的 python 版本上运行。 3. 运算符名称 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |