跟着官方文档学 Python 之:3.12 新变化
1、Python 3.12 有什么新变化
https://docs.python.org/zh-cn/3.12/whatsnew/3.12.html
Release 3.12.0a0
Date 六月 16, 2022
相比 3.11 版本亮点功能 PEP 623,从 Unicode 中删除 wstr
相比 3.11 版本新的功能
添加 os.PIDFD_NONBLOCK 以在非阻塞模式下使用 os.pidfd_open() 打开进程的文件描述符。
从 Unicode 中删除了 wstr 和 wstr_length 成员,在 64 位平台上将对象大小减少了 8 / 16 个字节。
CPython 字节码更改:删除了 LOAD_METHOD 指令,它已合并到 LOAD_ATTR。如果设置了 oparg 的低位,则 LOAD_ATTR 现在的行为类似于旧的 LOAD_METHOD 指令。
部分模块和 API 在早期的 Python 版本中已被弃用,并将在 Python 3.13 中删除 (see PEP 594) 。
以下 API 在较早的 Python 版本中已被弃用,未来会删掉,暂无排期。
Currently Python accepts numeric literals immediately followed by keywords, for example
0in x
,1or x
,0if 1else 2
. It allows confusing and ambiguous expressions like[0x1for x in y]
(which can be interpreted as[0x1 for x in y]
or[0x1f or x in y]
). A syntax warning is raised if the numeric literal is immediately followed by one of keywords and, else, for, if, in, is and or. In a future release it will be changed to a syntax error. (gh-87999)
以下未记录的 sqlite3 功能(在 Python 3.10 中已弃用)现在已被删除。
sqlite3.enable_shared_cache()
sqlite3.OptimizedUnicode
如果必须使用共享缓存,请使用 cache=shared 查询参数以 URI 模式打开数据库。
sqlite3.OptimizedUnicode 文本工厂自 Python 3.3 以来一直是 str 的别名。之前将文本工厂设置为 OptimizedUnicode 的代码可以显式使用 str,也可以依赖默认值 str。
--experimental-isolated-subinterpreters 配置标志(和相应的 EXPERIMENTAL_ISOLATED_SUBINTERPRETERS)已被删除。
之前描述的更改和其他可能需要更改代码的错误修正。
Python API 的变化:现在对正则表达式中的数字组引用和组名应用了更严格的规则。现在只接受 ASCII 数字序列作为数字参考。字节模式和替换字符串中的组名现在只能包含 ASCII 字母和数字以及下划线。
删除了自 Python 3.10 以来不推荐使用的 randrange() 功能。以前,randrange(10.0) 无损转换为 randrange(10)。现在,它引发了一个 TypeError。此外,针对 randrange(10.5) 或 randrange('10') 等非整数值引发的异常已从 ValueError 更改为 TypeError。这也防止了 randrange(1e25) 会从比 randrange(10**25) 更大的范围中静默选择的错误。
现在需要带有两个参数的 va_start(),例如 va_start(args, format) 来构建 Python。 va_start() 不再使用单个参数调用。
添加了新的受限 C API 函数 PyType_FromMetaclass(),它使用额外的元类参数概括了现有的 PyType_FromModuleAndSpec()。
基于 Py_UNICODE* 表示的旧版 Unicode API 已被删除。请迁移到基于 UTF-8 或 wchar_t* 的 API。
PyArg_ParseTuple() 等参数解析函数不再支持基于 Py_UNICODE* 的格式(例如 u、Z)。请迁移到 Unicode 的其他格式,例如 s、z、es 和 U。
删除 token.h 头文件。从来没有任何公共标记器 C API。 token.h 仅设计为供 Python 内部使用。
2、Python 入门文档
1)Python 官方文档
https://docs.python.org/zh-cn/3.12/
2)菜鸟教程 | Python 基础教程
https://www.runoob.com/python/python-tutorial.html
3)廖雪峰 Python 教程
https://www.liaoxuefeng.com/wiki/1016959663602400
👉如果在阅读过程中有任何疑问,欢迎在评论区留言参与讨论!
版权声明: 本文为 InfoQ 作者【甜甜的白桃】的原创文章。
原文链接:【http://xie.infoq.cn/article/f69f981ad1f040e363d407aba】。文章转载请联系作者。
评论