Я стараюсь (в Python 2.7.6):Почему `()> ''> []> {}> 0> None` в Python 2.7?
() > '' > [] > {} > 0 > None
И это возвращает
True
Почему это так?
Я стараюсь (в Python 2.7.6):Почему `()> ''> []> {}> 0> None` в Python 2.7?
() > '' > [] > {} > 0 > None
И это возвращает
True
Почему это так?
Это несчастный случай истории.
Это фиксируется в Python 3:
>>>() > '' > [] > {} > 0 > None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: tuple() > str()
Или, другими словами, упорядочение было решено, но нет никакого особого логического/техническая причина, почему они должны заказать этот путь и не по-другому. Чтобы избежать путаницы типов больше не может сравниться в этом порядке в Python 3.
В документации Python 2 я мог только найти:
объектов различных типов, кроме различных числовых типов и различных типов строк , никогда не сравнивайте равных; такие объекты упорядочиваются последовательно, но произвольно (так что сортировка гетерогенного массива дает согласованный результат).
Вопрос, почему эти типы сопоставимы вообще или почему выбран конкретный заказ? –