aijam
2020-11-20 15:26:25 +08:00
先回答你的问题:
> 后面这句指的是 3.9 弃用 collections.abc.Iterable,还是弃用 typing.Iterable?
弃用 typing.Iterable
> 转到 typing 模块去归一定义
不对,是反过来:3.9 之后 typing 里很多和标准库本来就有的重复的东西被 deprecate 了
------------------------------------------------------------------------------------
3.9 之前,你写 list of string 的 type annotation 需要写"var: typing.List[str]"。
3.9 之后,你直接用 builtin 的类型 list,只需要写"var: list[str]",不需要 import typing 。
基本改革方向就是:“如果标准库里有这个类型了,就不用在 typing 里专门为了 type annotation 又重复定义一个了”。所以,标准库里本来就有 collections.abc.Iterable,它是 list, tuple, dict 等共同的抽象父类,所以没必要保留 typing.Iterable 了。