擅长:python、mysql、java
<p>我不知道任何关于<code>==</code>如何作用于类型的文档,但是它肯定是通过标识来工作的。您可以看到<a href="https://hg.python.org/cpython/file/2.7/Objects/typeobject.c#l632" rel="nofollow noreferrer">CPython 2.7 implementation</a>是一个指针比较:</p>
<pre><code>static PyObject*
type_richcompare(PyObject *v, PyObject *w, int op)
{
...
/* Compare addresses */
vv = (Py_uintptr_t)v;
ww = (Py_uintptr_t)w;
switch (op) {
...
case Py_EQ: c = vv == ww; break;
</code></pre>
<p>在<a href="https://hg.python.org/cpython/file/3.5/Objects/typeobject.c#l3294" rel="nofollow noreferrer">CPython 3.5</a>中,<code>type</code>没有实现自己的<code>tp_richcompare</code>,因此它从<code>object</code>继承默认的相等比较,这是一个指针比较:</p>
^{pr2}$