__instancecheck__的最小工作示例

时间:2019-03-03 14:50:09

标签: python python-3.x class metaclass

我正在尝试为类__instancecheck__写一个愚蠢的Class,因此以下内容将打印False

c = Class()
print(isinstance(c, Class)) # False

我试图将__instancecheck__放在Class,BaseClass和MetaClass中,但没有任何效果。这是代码:

class MetaClass(type):
    def __instancecheck__(self, instance):
        return False


class BaseClass(metaclass=MetaClass):
    def __instancecheck__(self, instance):
        return False


class Class(BaseClass, metaclass=MetaClass):
    def __instancecheck__(self, instance):
        return False

c = Class()
print(isinstance(c, Class))  # True

doc说该方法应该在元类中,我做到了,但它不起作用,我也无法理解为什么。请告诉我我哪里错了。

0 个答案:

没有答案