计划在 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.SelectorEventLoop
import 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 起弃用。