点击上方“Python之禅”,马上关注,一起学Python
回复“1024”获取学习资料
赋值表达式的语法是:“ name := expression ”,这个曾经引起很大争议特性,最终还是加入到了Python3.8。不过它也仅仅只是一个锦上添花的特性。
我们可以通过一个例子来了解它的使用场景。
>>> import re
>>> data = "hello123world"
>>> match = re.search("(\d+)", data) # 3
>>> if match: # 4
... num = match.group(1)
... else:
... num = None
>>> num
'123'
代码很简单,就是一个使用正则表达式提取字符串中数字部分的操作。之前的做法是先将调用 re.search 方法,返回Match对象,然后赋值给变量 match,再判断 match 对象是否为None来提取其中的数字部分。
在Python3.8中,你可以将第3、4行代码合并成一行代码,在 if 语句中,可以给变量赋值,这就是赋值表达式。相比之前的版本,代码少了一行。
>>> if match:=re.search("(\d+)", data):
... num = match.group(1)
... else:
... num = None
...
>>> num
'123'
这样看起来代码确实精简了一点点,但是,这样的特性对开发者来说,只能说是一个不痛不痒的功能,至少对我来是这样。
推荐阅读:
好文和朋友一起看~