Сборник сравнения является рефлексивным, но не имеет короткого замыкания. Зачем?

В python встроенные коллекции сравнивают элементы с явным предположением, что они рефлексивны:

В обеспечении рефлексивности элементов,сравнение коллекций предполагает, что для элемента коллекции x, x == x всегда верно, Исходя из этого предположения, идентичность элемента сначала сравнивается, а сравнение элементов выполняется только для отдельных элементов.

По логике это означает, что для любого спискаL, L == L должно бытьTrue, Учитывая это, почему реализация не проверяет идентичность для короткого замыкания оценки?

In [1]: x = list(range(10000000))
In [2]: y = list(range(int(len(x)) // 10))
In [3]: z = [1]

# evaluation time likes O(N)
In [4]: %timeit x == x
10 loops, best of 3: 21.8 ms per loop
In [5]: %timeit y == y
100 loops, best of 3: 2.2 ms per loop
In [6]: %timeit z == z
10000000 loops, best of 3: 36.4 ns per loop

Очевидно, что дочерние классы могут выбрать проверку личности, и, очевидно, проверка идентичности добавит очень малые издержки к каждому такому сравнению.

Было ли принято историческое решениене сделать такую ​​проверку во встроенных последовательностях, чтобы избежать этих затрат?

Ответы на вопрос(1)

Ваш ответ на вопрос