python - 如何明确告诉 mypy 变量的正确类型?

我选择了一个 pandas 数据框的 value ,变量的类型是字符串。在一个函数中,我返回这个 value 并将 value 注释为 str。

def get_item_name(code: str) -> str:
    item = df.loc[code, "item_name"]
    return item

但是, mypy 给了我以下警告:

类型“标量”的表达式不能分配给返回类型“str”

类型“标量”不能分配给类型“str”“bytes”与“str”不兼容PylancereportGeneralTypeIssues

有没有办法明确告诉 mypy 变量项的正确类型是字符串?

如果我使用 str(df.loc[code, "item_name"]),我会收到警告消失,但这会使代码看起来像 value 可能是一个数字,但我们将其转换为字符串,情况并非如此,因为 value 已经是字符串。

回答1

如果你真的确定,你可以使用 cast。不过,你应该小心这一点。

from typing import cast

def get_item_name(code: str) -> str:
    item = df.loc[code, "item_name"]
    return cast(str, item)

相似文章

随机推荐

最新文章