Python 3.12+中Iterable[str]与[str]类型注解的区别及有效性疑问
Python 3.12+中Iterable[str]与[str]类型注解的区别及有效性疑问
我最近在琢磨Python 3.12+里两种类型注解写法的差异,就是下面这两种:
第一种是导入Iterable后使用的写法:
from typing import Iterable def func(self, stuff: Iterable[str]) -> str:
第二种是直接用方括号的简化写法:
def func(self, stuff: [str]) -> str:
我有两个具体的疑问想搞清楚:
- 这两种类型注解的写法都是有效的吗?
- 它们给Python 3.12+解释器传递的类型信息是完全一致的吗?
之前我看过相关的问题,但那个问题并没有解答我关于Iterable关键字的这个具体困惑。
备注:内容来源于stack exchange,提问作者suizokukan




