我正在查看 标准库文档,我发现
from typing import Sequence
只是在底层调用 collections.abc
。
现在,最初存在弃用警告/错误,并针对某些抽象类从
collections
包迁移到 collections.abc
。 看这里。然而,既然抽象已经安顿在新的位置,那么使用其中任何一个都可以吗?我在代码库中看到 from collections.abc import [etc]
,我想知道在尝试进行类型注释时从 typing
导入是否更实用?
Cython 源代码:
Sequence = _alias(collections.abc.Sequence, 1)
但是,既然抽象已经安置在新位置,那么使用其中任何一个都可以吗?
不。 文档特别指出(如果是
typing.Sequence
):
自 3.9 版起已弃用:collections.abc.Sequence 现在支持下标 ([])
如果它已被弃用,则可能会在下一版本的 Python 中删除它。因此,请使用
collections.abc
通用类。