我使用mypy作为linter,并且有点困惑如何处理默认参数。
我使用以下类型注释:
def func(dict_1: Dict[str, Any], dict_2: Optional[Dict[str, str]])
和实函数是签名是:
def func(dict_1, dict_2=None)
在我的文档我看到,如果我的参数默认值是None,那么我被允许使用Optional
(见本章末尾的第三个注意)
但我得到以下错误:
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]] = ...