擅长:python、mysql、java
<pre><code>import inspect
print(inspect.isabstract(object)) # False
print(inspect.isabstract(MessageDisplay)) # True
print(inspect.isabstract(FriendlyMessageDisplay)) # True
print(inspect.isabstract(FriendlyMessagePrinter)) # False
</code></pre>
<p>这将检查是否在类对象中设置了内部标志<code>TPFLAGS_IS_ABSTRACT</code>,因此它不会像您的实现那样容易被愚弄:</p>
<pre><code>class Fake:
__abstractmethods__ = 'bluh'
print(is_abstract(Fake), inspect.isabstract(Fake)) # True, False
</code></pre>