我正在尝试为类__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说该方法应该在元类中,我做到了,但它不起作用,我也无法理解为什么。请告诉我我哪里错了。