我选择一个pandas数据框架的值,变量的类型是string。在函数中,我返回这个值,并将该值标注为str。
def get_item_name(code: str) -> str:
item = df.loc[code, "item_name"]
return item
然而,mypy给出了以下警告:
类型为"标量"的表达式;
类型"标量"不能赋值给类型"str"bytes"与"str"PylancereportGeneralTypeIssues不兼容
是否有一种方法可以明确地告诉mypy变量item的正确类型是string?
如果我使用str(df.loc[code, "item_name"])
,我会得到消失的警告,但这使代码看起来像值可能是一个数字,但我们将其转换为字符串,这不是情况,因为值已经是字符串。
如果你真的很确定,你可以使用强制转换。但是,您应该小心使用它。
from typing import cast
def get_item_name(code: str) -> str:
item = df.loc[code, "item_name"]
return cast(str, item)