`from打字`与`from collections.abc`?

问题描述 投票:0回答:1

我正在查看 标准库文档,我发现

from typing import Sequence
只是在底层调用
collections.abc

现在,最初存在弃用警告/错误,并针对某些抽象类从

collections
包迁移到
collections.abc
看这里。然而,既然抽象已经安顿在新的位置,那么使用其中任何一个都可以吗?我在代码库中看到
from collections.abc import [etc]
,我想知道在尝试进行类型注释时从
typing
导入是否更实用?

Cython 源代码:

Sequence = _alias(collections.abc.Sequence, 1)

standard-library python-3.11 pep
1个回答
0
投票

但是,既然抽象已经安置在新位置,那么使用其中任何一个都可以吗?

不。 文档特别指出(如果是

typing.Sequence
):

自 3.9 版起已弃用:collections.abc.Sequence 现在支持下标 ([])

如果它已被弃用,则可能会在下一版本的 Python 中删除它。因此,请使用

collections.abc
通用类。

© www.soinside.com 2019 - 2024. All rights reserved.