擅长:python、mysql、java
<p>你的问题有点不清楚。您想确定“类实例的类型”。这可能意味着两件事。您要确定的是实例是特定类的实例。你可以这样做:</p>
<pre><code>>>> isinstance(a, A)
True
</code></pre>
<p>您还可以使用<code>type()</code>调用获取类,但这通常不是很有用:</p>
<pre><code>>>> type(a)
<class '__main__.A'>
</code></pre>
<p>但你所做的测试并不能证明这一点。相反,他们检查<em>类</em>是什么类型。但是Python 3只有一种类型的类。Python 2以及“旧样式”和“新样式”类,但是Python 3只有新样式的类,所以没有必要在python3中进行这种检查。</p>
<p>你也可以使用元类。在这种情况下,可以通过检查类的<code>__class__</code>来找到元类:</p>
<pre><code>>>> from abc import ABCMeta
>>> class B(metaclass=ABCMeta): pass
>>> type(B)
<class 'abc.ABCMeta'>
</code></pre>
<p>但是,从您的注释来看,您似乎想确定对象是否是实例。如果你问的话你会得到更好的答案。。。</p>
<p>无论如何,要做到这一点,您可以使用<code>inspect.isclass</code>:</p>
<pre><code>>>> import inspect
>>> inspect.isclass(a)
False
>>> inspect.isclass(A)
True
</code></pre>
<p>这是因为一切都是一个实例:</p>
<pre><code>>>> isinstance(type, type)
True
</code></pre>
<p>但并不是所有的东西都是一门课。</p>