метод класса __instancecheck__ не работает
Я использую Python 2.7.3 на Windows. Я пытался переопределить__instancecheck__
магический метод как метод класса. Но я не могу заставить это работать.
class Enumeration(int):
@classmethod
def __instancecheck__(cls, inst):
if type(inst) == cls:
return True
if isinstance(inst, int) and inst in range(0,10):
return True
return False
print isinstance(1, Enumeration) # prints False
print isinstance(1, Enumeration()) # prints True
Я предполагаю, что первый оператор print получит True. Но, похоже, волшебный метод__instancecheck__
не называется. И я нене знаю, почему второй оператор печати может работать, так какisinstance
должен взять класс / тип в качестве второго параметра.
Кто-нибудь знает в чем проблема? Благодарю.