Python 3.10 正式发布!
2023-04-18 14:09:59 时间
2021年10月4日 Python 终于正式发布了 3.10 版本。
全新六大特点
-
match和case 语法
-
更严谨的 zip
-
新的类型标注特性
-
重要的弃用、移除或限制,如PEP 632,弃用 distutils 模块
-
新的特性:带圆括号的上下文管理器
-
更友好的报错提示
1 match和case 语法
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")
return "Something's wrong with the Internet"
你看,与C++的switch和case用法是完全一样的!
2 更严谨的 zip
zip打包多个可迭代对象,配合for后接下来的操作以元组为基本单位,但是有一个有些致命的隐含问题,如下两个列表a,b 长度不一致,zip后丢失了a的元素 3:
In [43]: a=[1,2,3]
In [44]: b=['a','b']
In [45]: for i in zip(a,b):
...: print(i)
...:
(1, 'a')
(2, 'b')
为了解决这个问题,zip添加了一个布尔类型的参数 strict,这个变化也就是:
3.10以前zip的原型:
zip(*iterables)
3.10以后增加一个布尔类型参数strict
,默认为False
zip(*iterables, strict=False)
只有当其为True时,打包的可迭代对象长度不一致时会抛异常;当为False时,与之前版本的zip完全相同,因此zip是完全向后兼容的。
3 带括号的上下文管理器
with可以加括号了,例如
4 更友好的报错提示
当你的括号、引号未闭合时,python会抛出更加清晰明了的错误
(本文参考自 Python官方文档 : Python Release Python 3.10.0 | Python.org)
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击