草庐IT

instancecheck

全部标签

python - 为什么 __instancecheck__ 并不总是根据参数调用?

有这段代码:classMeta(type):def__instancecheck__(self,instance):print("__instancecheck__")returnTrueclassA(metaclass=Meta):passa=A()isinstance(a,A)#__instancecheck__notcalledisinstance([],A)#__instancecheck__called为什么__instancecheck__被调用用于[]参数而不是用于a参数? 最佳答案 PyObject_IsInstan

python - 类方法 __instancecheck__ 不起作用

我在Windows上使用python2.7.3。我试图将__instancecheck__魔术方法重写为类方法。但我无法让它工作。classEnumeration(int):@classmethoddef__instancecheck__(cls,inst):iftype(inst)==cls:returnTrueifisinstance(inst,int)andinstinrange(0,10):returnTruereturnFalseprintisinstance(1,Enumeration)#printsFalseprintisinstance(1,Enumeration())