只是一个奇怪的警告,到目前为止它似乎没有引起任何问题,但这是一个强烈的警告,我想摆脱它。所以我的代码中的这一行已被标记为存在此问题: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所以我很困惑为什么会收到警告。是因为我的元组中可能有两个以上的值吗?
1 回答
达令说
TA贡献1821条经验 获得超6个赞
最终,我会说是的 - 这就是你收到警告的原因。
Python 中的元组是一个 n 元组,而不是严格意义上的 2 元组。(参见https://docs.python.org/3/tutorial/datastructs.html#tuples-and-sequences)
我敢打赌这会清除警告:
ultrafines_min, ultrafines_max, _ = self.ultra_fines_limits
但更有用的是,您可能想查看 value() 函数,看看是否有更好的方法来打包最小值和最大值。在这种情况下,也许更明确更好?
@classmethod
def values(cls) -> Tuple[int]:
return cls.low_limit, cls.top_limit
添加回答
举报
0/150
提交
取消