python3.8中返回了预期的类型'str',元组[str] [重复]
Posted
技术标签:
【中文标题】python3.8中返回了预期的类型\'str\',元组[str] [重复]【英文标题】:Expected type 'str', Tuple[str] was returned in python3.8 [duplicate]python3.8中返回了预期的类型'str',元组[str] [重复] 【发布时间】:2022-01-14 19:59:03 【问题描述】:python3.8 中返回了预期类型 str
、Tuple[str]
CA2 = "2CA",
CA3 = "3CA",
CA4 = "4CA",
LTE = "LTE"
def temp() -> str:
ca_list = [1, 2, 3]
if len(ca_list) == 1:
result = LTE
elif len(ca_list) == 2:
result = CA4
elif len(ca_list) == 3:
result = CA2
else:
result = CA3
return result
temp()
输出:('2CA',)
【问题讨论】:
问题是什么?您声明该函数返回一个 str,但随后您返回"2CA",
这是元组。
在 "2CA" 后面加上逗号会使你的变量 'CA2' 成为一个元组并被返回。
为什么返回 ('2CA',),正确的返回是 2CA。
("2CA",) 和你的变量CA2="2CA",
是一样的。
【参考方案1】:
每个后面的逗号会自动将字符串(例如 "2CA"
)转换为元组(例如 ('2CA',)
),因此您的输出是包含它的元组。
如果你想要一个字符串输出,只需删除逗号
请看这里: Why does adding a trailing comma after a variable name make it a tuple?
【讨论】:
以上是关于python3.8中返回了预期的类型'str',元组[str] [重复]的主要内容,如果未能解决你的问题,请参考以下文章
当预期元组类型参数时,我们是否总能使用列表类型作为函数参数?
预期类型 Union[str, bytes, int] 但得到 Sequence[Union[int, float, str]]