__instancecheck__ - sobrescribir no muestra ningún efecto - ¿qué estoy haciendo mal?
Estoy tratando de hacer que mi clase aparezca como un objeto diferente para eludir la comprobación de tipo perezoso en un paquete que estoy usando. Más específicamente, estoy tratando de hacer que mi objeto aparezca como una instancia de otro objeto tuple
en mi caso) cuando en realidad ni siquiera es una derivación de eso.
ara lograr esto, planeo sobrescribir la__isinstance__
método que, de acuerdo con el docs, debería hacer exactamente lo que deseo. Sin embargo, parece que no entendí cómo hacerlo exactamente, porque mis intentos no tuvieron éxito.
Aquí hay un SSCCE quedeberí hacerisinstance
regresoFalse
en todos los casos pero no lo hace.
class FalseInstance(type):
def __instancecheck__(self, instance):
return False
class Foo(metaclass=FalseInstance):
pass
g = Foo()
isinstance(g, Foo)
> True
¿Qué estoy haciendo mal