Он не реализован непосредственно на 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?