CPython Equality
CPython 的 dictionary 在比較相等性時會先看兩個 dictionary 的長度是否一樣, 一樣的話再爬進去比裡面各個項目是否都被包含在另外一個 dictionary。
// Objects/dictobject.c
////////////////////////////////////////
// dictview_richcompare
case Py_NE:
case Py_EQ:
if (len_self == len_other)
ok = all_contained_in(self, other);
if (op == Py_NE && ok >= 0)
ok = !ok;
break;
////////////////////////////////////////
// all_contained_in
for (;;) {
PyObject *next = PyIter_Next(iter);
...
ok = PySequence_Contains(other, next);
}