擅长:python、mysql、java
<p><code>AbstractBaseClassNoAbsMethod</code><strong>不是抽象的。从<code>ABC</code>继承不会使类抽象<code>inspect.isabstract</code>正在产生正确的结果。您还将看到,如果尝试实例化<code>AbstractBaseClassNoAbsMethod</code>,而尝试实例化实际抽象类时会引发异常,则不会发生错误</p>
<p>如果您想测试一个类是否直接从<code>abc.ABC</code>继承,您可以使用<code>__bases__</code>执行您已经在执行的操作,但是许多抽象类不会从<code>abc.ABC</code>继承。例如,这是一个抽象类:</p>
<pre><code>class Abstract(metaclass=abc.ABCMeta):
@abc.abstractmethod
def foo(self):
pass
</code></pre>
<p>在这个例子中<code>B</code>也是如此:</p>
<pre><code>class A(abc.ABC):
@abc.abstractmethod
def foo(self):
pass
class B(A): pass
</code></pre>
<p>但是<code>Abstract</code>和<code>B</code>都不是直接从<code>abc.ABC</code>继承的</p>