PyCharm 中的“需要更多值来解压”警告

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


所以我的代码中的这一行已被标记为存在此问题:


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

所以我很困惑为什么会收到警告。是因为我的元组中可能有两个以上的值吗?


素胚勾勒不出你
浏览 58回答 1
1回答

达令说

最终,我会说是的 - 这就是你收到警告的原因。Python 中的元组是一个 n 元组,而不是严格意义上的 2 元组。(参见https://docs.python.org/3/tutorial/datastructs.html#tuples-and-sequences)我敢打赌这会清除警告:ultrafines_min, ultrafines_max, _ = self.ultra_fines_limits但更有用的是,您可能想查看 value() 函数,看看是否有更好的方法来打包最小值和最大值。在这种情况下,也许更明确更好?@classmethoddef values(cls) -> Tuple[int]:    return cls.low_limit, cls.top_limit
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python