我选择了一个 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)