import inspectprint(inspect.isabstract(object)) # Falseprint(inspect.isabstract(MessageDisplay)) # Trueprint(inspect.isabstract(FriendlyMessageDisplay)) # Trueprint(inspect.isabstract(FriendlyMessagePrinter)) # False
这将检查
TPFLAGS_IS_ABSTRACT是否在类对象中设置了内部标志,因此不能像实现那样容易地对其进行欺骗:
class Fake: __abstractmethods__ = 'bluh'print(is_abstract(Fake), inspect.isabstract(Fake)) # True, False



