关于python:这个链式比较真的可以像PyCharm声称的那样简化吗?

Can this chained comparison really be simplified like PyCharm claims?

我有一个具有两个整数属性的类,_xplevel。我有一个EDOCX1[2]循环,它比较这两个循环,以确保它们都是正的:

1
2
3
while self.level > 0 and self._xp < 0:
    self.level -= 1
    self._xp += self.get_xp_quota()

我的Pycharm声称这可以简化:

Simplify chained comparison

真的吗?我想确保在向Pycharm报告错误之前。

我也发现了一个类似的问题,但在这种情况下,两个变量是相同的,我的有两个不同的属性。


IIRC,你可以把它改写为:

1
2
3
while self._xp < 0 < self.level:
    self.level -= 1
    self._xp += self.get_xp_quota()

根据你上面的参考。有两个不同的属性或相同的变量并不重要,最终只需要比较每个属性的值。

如果可行,请告诉我。