metoda klasy __instancecheck__ nie działa

Używam Pythona 2.7.3 w systemie Windows. Próbowałem zastąpić__instancecheck__ metoda magiczna jako metoda klasowa. Ale nie mogę tego sprawić.

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

Zakładam, że pierwsza instrukcja drukowania otrzyma True. Ale wydaje się, że to magiczna metoda__instancecheck__ nie jest wywoływany. I nie wiem, dlaczego druga instrukcja drukowania może działać odisinstance powinien przyjąć klasę / typ jako drugi parametr.

Czy ktoś wie, na czym polega problem? Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion