我有两个功能。一个返回混合的东西,所以我的返回类型为Dict[str, Any]
。第一个函数调用另一个返回类型为Dict[str, str]
的函数。该结果包含在第一个函数的返回字典中。这对我来说似乎很好。这不适合Any
吗?
但是mypy抱怨说,example.py:12: error: Incompatible types in assignment (expression has type "Dict[str, str]", target has type "Union[Dict[<nothing>, <nothing>], bool, str, None]")
您可以按如下方式测试此最小示例:
$ mypy --strict-optional example.py
from typing import Dict, Any
def function_one(variable: Dict[str, str]) -> Dict[str, Any]:
result = {
'this': None,
'email': variable['eggs'],
'allowed': False,
'more_stuff': {}
}
response_two = function_two(variable)
result['more_stuff'] = response_two
return result
def function_two(stuff: Dict[str, str]) -> Dict[str, str]:
result = {
'one': stuff['spam']
}
return result
当我遗漏--strict-optional
标志时,我没有收到错误,但我想将其留在,docs,& #34;此标志将在不久的将来成为默认值。&#34;
仔细阅读文档后,我认为将function_one
的返回类型更改为Dict[str, Optional[Any]]
可能会解决问题,但我仍然会遇到相同的mypy错误。