dict我正在尝试在具有多个将函数绑定到它们的字段的类型中添加类型提示。例如
from typing import Dict, Callable, Any, Union
def fn():
print("Hello World")
def fn2(name):
print("goodbye world", name)
d = {
"hello" : {
"world": fn
},
"goodbye": {
"world": fn2
}
} # type: Dict[str, Dict[str, Union[Callable[[], None], Callable[[str], None]]]]
d["hello"]["world"]()
d["goodbye"]["world"]("john")
我遇到的问题是每当我尝试运行mypy(v0.782)时它都会抛出错误:
test2.py:17: error: Too few arguments
test2.py:18: error: Too many arguments
显然,从函数定义和类型提示中可以看出,我已经传递了正确的参数。我显然错过了一些东西,导致它抛出错误。
Union但是,以下内容有效,所以我怀疑它与输入类型提示有关。
from typing import Dict, Callable, Any, Union
def fn():
print("Hello World")
d = {"hello": {"world": fn}} # type: Dict[str, Dict[str, Callable[[], None]]]
d["hello"]["world"]()
宝慕林4294392
相关分类