繁体   English   中英

mypy 错误:返回值类型不兼容(得到“object”,预期为“Dict[Any, Any]”)

[英]mypy error: Incompatible return value type (got "object", expected "Dict[Any, Any]")

我有一个 python class 如下所示:

class TestClass():

    def __init__(self, input_data):
        self.input_data = input_data #always 'a' or 'b'

    def test(self) -> dict[str, Any]:
        a = {'a': {1:0, 2:0}, 'b': {2:0, 3:'string'}}
        return a[self.input_data]

运行 mypy 会导致错误消息Incompatible return value type (got "object", expected "Dict[Any, Any]") 有没有办法解决这个问题?

一行 if 语句也遇到同样的问题,例如,如果我根据条件返回不同的 integer 并将返回类型注释为 int,则会引发一条错误消息,指出返回“对象”类型。

您需要向a添加类型注释:

a: dict[str, Any] = {'a': {1:0, 2:0}, 'b': {2:0, 3:'string'}}

看起来这个 function 正在返回一个dict[int, Any] ,而不是一个dict[str, Any] ,但我不确定你想要什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM