Я пытаюсь сделать мой класс другим объектом, чтобы обойти ленивую проверку типов в пакете, который я использую. Точнее говоря, я пытаюсь сделать так, чтобы мой объект выглядел как экземпляр другого объекта (tuple
в моем случае), хотя на самом деле он даже не является производным от этого.
Чтобы достичь этого, я планирую переписать метод __isinstance__
, который, согласно документам , должен делать именно то, что я хочу. Однако, похоже, что я не понимал, как это сделать, потому что мои попытки не увенчались успехом.
Вот SSCCE, который должен заставить isinstance
вернуть False
во всех случаях, но не делает.
class FalseInstance(type):
def __instancecheck__(self, instance):
return False
class Foo(metaclass=FalseInstance):
pass
g = Foo()
isinstance(g, Foo)
> True
Что я делаю не так?