使用mypy时多行代码的type: ignore注释不生效问题
解决mypy多行代码中
# type: ignore不生效的问题 当代码拆分为多行时,# type: ignore注释必须和触发类型错误的语法元素放在同一行,否则mypy无法将注释关联到对应的错误节点,导致注释失效。
正确写法示例
方法1:将注释放在索引访问的行
如果类型错误来自["b"]这个索引操作,直接把注释放在该行末尾:
items["a"][ "b" # type: ignore ] = "value"
方法2:用括号包裹整个语句后加注释
如果要忽略整个赋值语句的类型检查,可以用括号把多行语句包裹成一个整体,再将注释放在末尾:
(items["a"][ "b" ] = "value") # type: ignore
原写法失效的原因
mypy的# type: ignore是按行绑定到具体语法节点的,你之前把注释放在赋值操作的最后一行,但类型错误实际出现在前面的索引访问行,导致注释无法关联到需要忽略的错误。
内容的提问来源于stack exchange,提问作者dhilmathy
相关产品推荐
相关产品推荐

