gpt4 book ai didi

python-3.x - 将空元组分配给专用变量时,类型不兼容

转载 作者:行者123 更新时间:2023-12-03 17:06:24 28 4
gpt4 key购买 nike

我有一个变量path,它应该是字符串的元组。我想先将其设置为一个空的元组,但是mypy提示。

path: Tuple[str] = ()

错误是:

Incompatible types in assignment (expression has type "Tuple[]", variable has type "Tuple[str]")



如何将空元组分配给类型变量?

动机

我要这样做的原因是:我想动态地建立元组,并且元组(与列表不同)可以用作字典键。例如(不是我实际上在做什么):
for line in fileob:
path += (line,)
some_dict[path] = some_object

这很好,除了mypy不喜欢上面的类型声明。我可以使用列表,然后将其转换为元组,但这会使代码复杂化。

最佳答案

编辑:

您可以这样定义variable length, homogenous tuple:

Tuple[str, ...]

您还可以使用 typing.Union 创建“a或b”类型的变量:

from typing import Union

path: Union[Tuple[()], Tuple[str]] = ()


旧答案:

通过尝试将空元组分配给您键入的变量以不允许空元组,您实际上错过了键入变量的要点。

我假设您要分配的空元组只是一个 token 值,并且您打算稍后在代码中重新分配变量(分配给仅包含字符串的元组)。

在这种情况下,只需将标记值设为包含字符串的元组即可:

path: Tuple[str] = ('token string')

这应该停止错误消息。

关于python-3.x - 将空元组分配给专用变量时,类型不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57566353/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com