在之前10月,Python 3.10 正式发布了,我发现了一个可怕的功能......
就在之前( 2021年10月4日) Python 终于正式发布了 3.10 版本,看了下这个版本的一些特性,最受关注的应该就是结构模式匹配了吧?也就是大家所熟悉的 match-case 。
下边是最简单的一个 match-case 的例子,看起来是不是非常的直观简洁?
def http_error(status):
match status:
case 400:
print("Bad request")
case 404:
print("Not found")
case 418:
print("I'm a teapot")
case _:
print("Something's wrong with the internet")
对这个功能满怀期待的我,赶紧就下载升级了 3.10 的 Python 赶紧试用,可没想到在我深入的体验过后,我从最开始的期待,变成了敬畏。
敬畏,是因为这样一个看似简单的新功能,却有着不少的学习成本,并且对结构模式匹配半知半解的人来说,会增大代码出错的概率,并不是大数人都能轻松驾驭的。
为什么会这么说呢?在文章最后来简述观点。
鉴于大多数人,都没有实际用过这种 结构模式匹配,会从 升级 3.10 开始教大家如何尝鲜这个新功能,然后会详细的介绍 match-case 的使用方法。
1. 升级 3.10 新版本
本机的电脑上目前的 Python 版本是 3.9.1 的
$ /usr/local/bin/python3 --version
Python 3.9.1
由于这边使用的是 mac,因此从官网上下载的是 Python 3.10 的 pkg 文件,如果是 win 的用户,可以下载相应的 msi 或者 exe 文件。
下载链接我贴在下边,可以直接访问下载<