只是一個奇怪的警告,到目前為止它似乎沒有引起任何問題,但這是一個強(qiáng)烈的警告,我想擺脫它。所以我的代碼中的這一行已被標(biāo)記為存在此問題: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()方法旨在返回一個元組,它確實(shí)這樣做了:(0, 35)Process finished with exit code 0所以我很困惑為什么會收到警告。是因?yàn)槲业脑M中可能有兩個以上的值嗎?
1 回答

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個贊
最終,我會說是的 - 這就是你收到警告的原因。
Python 中的元組是一個 n 元組,而不是嚴(yán)格意義上的 2 元組。(參見https://docs.python.org/3/tutorial/datastructs.html#tuples-and-sequences)
我敢打賭這會清除警告:
ultrafines_min, ultrafines_max, _ = self.ultra_fines_limits
但更有用的是,您可能想查看 value() 函數(shù),看看是否有更好的方法來打包最小值和最大值。在這種情況下,也許更明確更好?
@classmethod
def values(cls) -> Tuple[int]:
return cls.low_limit, cls.top_limit
添加回答
舉報
0/150
提交
取消