метод класса __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 должен взять класс / тип в качестве второго параметра.

Кто-нибудь знает в чем проблема? Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос