2016-09-27 5 views
1

Ich habe eine Klasse mit zwei ganzzahligen Attributen, _xp und level. Ich habe eine while Schleife, die diese beiden vergleicht, um sicherzustellen, sie sind beide positiv:Kann dieser verkettete Vergleich wirklich vereinfacht werden wie PyCharm?

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

Meine PyCharm Ansprüche diese vereinfacht werden kann:

Simplify chained comparison

Kann es wirklich? Ich möchte sicherstellen, dass PyCharm einen Fehler meldet.

Ich fand auch a similar question aber in diesem Fall waren die zwei Variablen gleich, meins hat zwei verschiedene Attribute.

+1

Ihr * Wert * ist derselbe. :-) –

+0

@MartijnPieters Oh verdammt, dumme ich. Vielen Dank! :) –

Antwort

4

IIRC, könnte man dies als umschreiben:

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

wie pro Ihre Referenz oben. Es spielt keine Rolle, dass es zwei verschiedene Attribute oder die gleiche Variable gibt. Letztendlich vergleicht man einfach die Werte jedes einzelnen.

Lassen Sie mich wissen, ob das funktioniert.

+0

Ja das ist richtig, danke :) –

Verwandte Themen