PEP 585:标准多项集中的类型标注泛型
字面上有点难理解,我也是懵圈中
看了下官网的解释:https://www.python.org/dev/peps/pep-0585/
大概了解下来我用实例演示下
从Python 3.7到Python 3.8之前我们可以这样创建函数了
比如我要获取一个List的长度
|
|
但是如果我要像下面这样创建是不行的
|
|
或者
|
|
但是现在在Python 3.9中这个事情就变的简单了
|
|
这里我只演示了list
其实还有很多类似这样的,如下
- tuple # typing.Tuple
- list # typing.List
- dict # typing.Dict
- set # typing.Set
- frozenset # typing.FrozenSet
- type # typing.Type
- collections.deque
- collections.defaultdict
- collections.OrderedDict
- collections.Counter
- collections.ChainMap
- collections.abc.Awaitable
- collections.abc.Coroutine
- collections.abc.AsyncIterable
- collections.abc.AsyncIterator
- collections.abc.AsyncGenerator
- collections.abc.Iterable
- collections.abc.Iterator
- collections.abc.Generator
- collections.abc.Reversible
- collections.abc.Container
- collections.abc.Collection
- collections.abc.Callable
- collections.abc.Set # typing.AbstractSet
- collections.abc.MutableSet
- collections.abc.Mapping
- collections.abc.MutableMapping
- collections.abc.Sequence
- collections.abc.MutableSequence
- collections.abc.ByteString
- collections.abc.MappingView
- collections.abc.KeysView
- collections.abc.ItemsView
- collections.abc.ValuesView
- contextlib.AbstractContextManager # typing.ContextManager
- contextlib.AbstractAsyncContextManager # typing.AsyncContextManager
- re.Pattern # typing.Pattern, typing.re.Pattern
- re.Match # typing.Match, typing.re.Match
不过对于我来说也许我也就用到下面几个
- tuple # typing.Tuple
- list # typing.List
- dict # typing.Dict
- set # typing.Set
- frozenset # typing.FrozenSet
- type # typing.Type
完全个人理解,仅供参考