如何评价Python3.8新出的“:=”表达式?

详细内容见PEP-572:https://www.python.org/dev/peps/pep-0572/

这个东西让我想到了当年在c里写while((char=getchar())!='\n') 的时代。虽然这种写法在c里面可读性不太好,但是python使用了专有符号:=一定程度上解决了这个问题。

如何评价Python3.8新出的“:=”表达式?

算是一个不错的语法糖,在一些特定情况下可以少些几行没什么用的变量读写代码。不过有了这个就想奢求更多啊,比如说可以写个lambda在里面什么的,类似于:

while data(lambda x:padding(x,32)):=f.read(32):

总结来说,个人认为python作为一个方便编写的语言,语法糖是多多益善的,用的好不好会不会影响可读性是一回事,有没有语法糖是另一回事。实用的语法糖上一个好像是3.6的f"",更新的太慢啦。顺带一提这东西也有很多不同意见,之前提案阶段有很多争议,把python之父都气跑了。

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。