PyCharm中的“需要更多值才能解包”警告

2024-06-07 01:05:46 发布

您现在位置:Python中文网/ 问答频道 /正文

只是一个奇怪的警告,到目前为止,它似乎没有引起任何问题,但它是一个强烈的警告,我想摆脱它

因此,我的代码中的这一行标记了以下问题:

ultrafines_min, ultrafines_max = self.ultra_fines_limits

属性self.ultra_fines_limits在代码前面声明,来自另一个类中的查找:

self.ultra_fines_limits = UltraFinesLimits.values()

最后,这是UltraFinesLimits的类声明:

class UltraFinesLimits(enum.Enum):

    low_limit = 0
    top_limit = 35

    @classmethod
    def values(cls) -> Tuple[int]:
        return tuple(map(lambda c: c.value, [*cls]))

正如您所看到的,values()方法旨在返回一个元组,它肯定会这样做:

(0, 35)

Process finished with exit code 0

所以我不明白为什么我会得到警告。是因为元组中可能有两个以上的值吗


Tags: 代码标记self声明警告mincls元组
1条回答
网友
1楼 · 发布于 2024-06-07 01:05:46

最终,我会说是的——这就是为什么你会得到警告

Python中的元组是n元组,而不是严格意义上的2元组。 (见https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences

我敢打赌,这将消除警告:

ultrafines_min, ultrafines_max, _ = self.ultra_fines_limits

但更有用的是,您可能希望查看value()函数,看看是否有更好的方法来打包min&;最大值。 在这种情况下,也许更明确一些更好

@classmethod
def values(cls) -> Tuple[int]:
    return cls.low_limit, cls.top_limit

相关问题 更多 >