Он не реализован непосредственно в bool.
>>> True.__lt__(2)
AttributeError: 'bool' object has no attribute '__lt__'
И это, по-видимому, не реализовано и на int
:
>>> super(bool, True).__lt__(2)
AttributeError: 'super' object has no attribute '__lt__'
Не существует отраженной версии __lt__
для 2
для управления операцией, а поскольку тип int
не является подклассом bool
, он в любом случае никогда не будет работать.
Python 3 ведет себя так, как ожидалось:
>>> True.__lt__(2)
True
Итак, как True < 2
реализовано в Python 2?
[exprFalse, exprTrue][condition]
эквивалентноexprTrue if condition else exprFalse
. - person BlackBear   schedule 05.11.2016print("True") if condition else print("False")
против[print("False"), print("True")][condition]
. - person user253751   schedule 05.11.2016