哟呵,进来体验一下这 5 个 Nice 的 Python3.11 新特性!

学习python的正确姿势

共 1708字,需浏览 4分钟

 ·

2022-11-18 17:56



1、
前不久 Python 更新了最新的 3.11 正式版
其中吹得比较牛叉的就是:
哥们变   快  了哈哈哈
0affe9d6937aaf3a2d9b5dc93d6c5cbb.webp
估计  Python 的慢 已经被吐槽到 Guido哥 都忍不了了吧
7010c7f66c10376ea7b55fadf3b7112a.webp
于是就有了:

943ad058f6080fb3bef44808791c633c.webp


Python3.11 比 Python3.10 快 10-60% 2e005af9541c25bf965e43fdf9869668.webp
这不得赶紧来体验一波 在 Python3.10 版本中
使用 pyperformance 跑一下

c49b236d2151e9598add4b02945d3095.webp


在 Python3.11 中也跑一下

11a204c85a1bdd8246da0594c29c5f4a.webp


将得到的两个 json 文件 使用表格的形式对比一波

815b4afcd58f7e114aed1bf3515da662.webp


可以看到 Python3.11 确实快了不少

07d94516213193858f0c5ad4e35e0a26.webp

2、

在 Python3.11 之前报错信息比较模糊

53de3801f0401612ba022b9c89903667.webp


最多就告诉你哪行出错了
对于复杂点的代码要定位错误还是挺麻烦的
而在新版本中
有了报错新姿势更加 贴心 

e94b4ab37ab12d4ef888f6a4f3632126.webp


直接通过「~~~^ ^」定位到具体错误的地方这对新手来说
那可是相当友好啊
6339553122efbd5ef0469b9b58b40aeb.webp

3、
这次还新增了 tomllib 内置模块这玩意可以使用极简的配置文件 TOML比如有这么一个 toml 配置文件:

a281f1be0b805527738855c46f0bf503.webp


可以直接使用 tomllib 来读取

e8c31da00653b495b1c696fa926ef552.webp

a62e81d2eaeeeab7869be70165a412d8.webp



4、
这次对异常也做了些改进比如你代码中捕获到异常
可以添加 note 了

01928f57d5b91a62a23bf6f5a416083f.webp


运行时遇到异常就会把 note 也打印出来

5ac061ba9e22fbf6c58515e25e8dc0ac.webp


够贴心吧?
fadf5b77ec5720996a94f33a2271e096.webp
此外,你还可以捕获多个异常 使用 ExceptionGroup 比如:

6b230170ef71695cc6cf8b221c07a386.webp


2f6a15c63e6b210d127746f6e8a7fbd2.webp


5、

在 Python3 定义函数的时候

你可以声明参数类型和返回类型


7eb08a315d3d86a233c0289553f9dc21.webp


而当你想要在类中方法返回实例的时候

我们需要通过 TypeVar 来绑定

从而进行声明


e979f229957ff7b54cbd8362e97e33ef.webp


是不是略微繁琐?

3.11 版本在 typing 中新增了 Self

于是现在就可以直接变成这样


4007f5fa7d256043f39dd9b7f4277275.webp

舒服了😌

OK,以上就是小帅b觉得还不错的几个新特性,想看更多 Python3.11 新玩意,可以到这里了解一波:

docs.python.org/3.11/whatsnew/ 

那么,我们下回见,peace!


2ff8808a0b1e32eee786efff93fbce20.webp

戳一戳

学习 Python 没烦恼

 

浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报