计划在 Python 3.16 中移除¶
导入系统
在设置模块的
__loader__属性时,若未同时设置__spec__.loader,此行为已被弃用。在 Python 3.16 中,导入系统或标准库将不再设置或考虑__loader__属性。
-
'u'格式代码(wchar_t)自 Python 3.3 起在文档中被弃用,自 Python 3.13 起在运行时被弃用。请改用'w'格式代码(Py_UCS4)来处理 Unicode 字符。
-
asyncio.iscoroutinefunction()已被弃用,并将在 Python 3.16 中移除;请改用inspect.iscoroutinefunction()。(由 Jiahao Li 和 Kumar Aditya 在 gh-122875 中贡献。)asyncio的策略系统已被弃用,并将在 Python 3.16 中移除。特别是,以下类和函数已被弃用:用户应使用
asyncio.run()或带 loop_factory 参数的asyncio.Runner来使用期望的事件循环实现。例如,在 Windows 上使用
asyncio.SelectorEventLoopimport asyncio async def main(): ... asyncio.run(main(), loop_factory=asyncio.SelectorEventLoop)
(由 Kumar Aditya 在 gh-127949 中贡献。)
-
对布尔类型进行按位取反(
~True或~False)的行为已自 Python 3.12 起弃用,因为它会产生令人惊讶且不直观的结果(-2和-1)。要对布尔值进行逻辑非运算,请改用not x。在极少数情况下,如果您需要对底层整数进行按位取反,请显式转换为int(~int(x))。
-
以关键字参数形式向
functools.reduce()的 Python 实现传递 function 或 sequence 参数的做法已自 Python 3.14 起弃用。
-
对带有 strm 参数的自定义日志处理程序的支持已被弃用,并计划在 Python 3.16 中移除。请改用 stream 参数来定义处理程序。(由 Mariusz Felisiak 在 gh-115032 中贡献。)
-
对于
mimetypes.MimeTypes.add_type(),有效的扩展名应以“.”开头或是空字符串。不带点的扩展名已被弃用,并将在 Python 3.16 中引发ValueError。(由 Hugo van Kemenade 在 gh-75223 中贡献。)
-
ExecError异常已自 Python 3.14 起弃用。自 Python 3.4 以来,shutil中的任何函数都未使用过它,现在它是RuntimeError的别名。
-
Class.get_methods方法已自 Python 3.14 起弃用。
sys:_enablelegacywindowsfsencoding()函数自 Python 3.13 起已被弃用。请改用PYTHONLEGACYWINDOWSFSENCODING环境变量。
-
sysconfig.expand_makefile_vars()函数已自 Python 3.14 起弃用。请改用sysconfig.get_paths()的vars参数。
-
未写入文档且未使用的
TarFile.tarfile属性已自 Python 3.13 起弃用。