【发布时间】:2020-02-18 11:49:43
【问题描述】:
有人能解释一下为什么这段代码虽然有效,但会让 mypy 静态分析器以多种方式抱怨:
ranges = dict()
ranges['max'] = 0
ranges['services'] = []
ranges['services'].append('a')
即:
error: Incompatible types in assignment (expression has type "List[<nothing>]", target has type "int")
error: "int" has no attribute "append"
如果我只是在ranges: dict = dict() 的初始变量中添加一个类型提示,它就可以正常工作。
我很困惑为什么静态分析器不能自己解决这个问题,尤其是当我使用dict 关键字在第一个实例中初始化字典时。
【问题讨论】: