为defaultdict(lambda: defaultdict(set))
编写类型提示的正确方法是什么
我使用Python3.10.5和mypy 0.971,并发现mypy返回一个错误,因为var = defaultdict(lambda: defaultdict(set))
没有类型提示。
Premises
第一个defaultdict的所有键和第二个defaultdict的str
.
set
。(这可能很明显。)示例代码
from collections import defaultdict
var = defaultdict(lambda: defaultdict(set))
输出
test.py:2: error: Need type annotation for "var"
发布于 2022-09-13 13:42:06
从Python3.9开始,您可以使用defaultdict
和set
本身作为注释:
var: defaultdict[str, defaultdict[str, set]] = defaultdict(lambda: defaultdict(set))
对于早期的Python版本,输入模块有一个特殊的DefaultDict
类型:
from collections import defaultdict
from typing import DefaultDict, Set
var: DefaultDict[str, DefaultDict[str, Set]] = defaultdict(lambda: defaultdict(set))
https://stackoverflow.com/questions/73703889
复制相似问题