mypy:缺少位置参数

mypy: Missing positional argument

我将 mypy 用作 linter,对默认参数的处理方式有点困惑。
我使用以下类型注释:

def func(dict_1: Dict[str, Any], dict_2: Optional[Dict[str, str]]) 

真正的函数是签名:

def func(dict_1, dict_2=None)

in mypy docs 我看到如果我的参数默认值为 None,那么我可以使用 Optional(见本章末尾的第 3 个注释)
但我收到以下错误:

error: Missing positional argument "dict_2" in call to "func"  [call-arg]

linter 是否允许我调用这样的函数 func(dict_val) 并保留默认参数未填充?

您在存根文件中包含类型提示,这意味着您应该编写以下内容以向 mypy 表明 dict_2 具有默认参数:

dict_2: Optional[Dict[str, str]] = ...