В основном любопытно.
Я заметил (по крайней мере, в п. 2.6 и 2.7), что float
имеет все знакомые богатые функции сравнения: __lt__()
, __gt__
, __eq__
и т.д.
>>> (5.0).__gt__(4.5)
True
но int
не
>>> (5).__gt__(4)
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'int' object has no attribute '__gt__'
Что странно для меня, потому что сам оператор отлично работает
>>> 5 > 4
True
Даже строки поддерживают функции сравнения
>>> "hat".__gt__("ace")
True
но все int
имеют __cmp__()
Мне кажется странным, и поэтому мне было интересно, почему это произошло.
Просто протестирован и работает как ожидается в python 3, поэтому я принимаю некоторые унаследованные причины. Еще хотелось бы услышать правильное объяснение, хотя:)