Ich bin kürzlich über diesen Ausdruck gestolpert:
%Vor% Es wird in False
ausgewertet, aber ich verstehe nicht warum.
True == False
ist False
und False in (False,)
ist True
, also beide (für mich) plausible Möglichkeiten
und
%Vor% bewerten bis True
, wie ich es erwartet hätte.
Was läuft hier falsch?
Ich glaube, das ist ein Eckfall von Pythons Vergleichsoperatorverkettung. Es wird zu
erweitert %Vor% was zu False
auswertet.
Dieses Verhalten sollte der herkömmlichen mathematischen Notation entsprechen (z. B. x == y == z
bedeutet, dass alle drei gleich sind oder 0 <= x < 10
bedeutet, dass x
im Bereich [0, 10) liegt). Aber in
ist auch ein Vergleichsoperator, der das unerwartete Verhalten ergibt.
Tags und Links python operator-keyword operator-precedence