去年国庆假期,Python 社区发布了 3.9 版本的第一个 stable release 。相比于 3.8,Python 3.9 新特性众多,但不少特性与大多数 Python“使用者”(而非 CPython 的贡献者或使用 C 接口编写扩展的开发者)关系不大。本文将站在 Python “使用者”的角度,简单介绍新特性中很可能会与各位的日常开发产生关系的几个。
字典“并集”运算符
“并集”运算符顾名思义就是给两个字典取并,并产生新的字典对象。熟悉 collections 标准库的开发者听到这一特性想必很容易联想到 ChainMap,两者的区别是“并集”运算符会直接产生新的对象,而 ChainMap 产生的是与输入的对象相关联的视图——视图对象或输入对象的变化都会直接对对方产生影响。
字典“并集”运算符及其相对应的原地运算符的效果如图:
也许有同学会质疑“并集”运算符的意义,毕竟使用如下的写法也能相对简洁地合并字典:
就笔者的理解(且不提上述三种写法有多少开发者能够想到),“并集”运算符的优势在于不会丢失参与合并字典的类型信息,且对字典键的类型没有要求;此外,经过简单测试,