[Python-3000] ABC PEP isinstance issue Was: PEP 31XX: A Type Hierarchy for Numbers (and other algebraic entities) (original) (raw)

Jim Jewett jimjjewett at gmail.com
Sun Apr 29 17:40:52 CEST 2007


On 4/28/07, Calvin Spealman <ironfroggy at gmail.com> wrote:

I'm just going to jump into this and voice a concern that allowing overriding of isinstance and issubclass seems like a Bad Idea.

I'm also uncomfortable, which is why I originally suggested a parallel predicate. That said, I can't put my finger on why it is wrong, so I'm not certain that a parallel predicate (isa?) would be better.

Guido wrote:

Note though that only the second argument to either function can overload the rules. IOW if you write isinstance(x, C), there is no way that x could attempt to lie; but C could.

As Barry pointed out, this means a class can't easily say "my parent may well implement ABC, but I don't." That special case could be added to the default overriding behavior, but ... it starts to get fragile.

-jJ



More information about the Python-3000 mailing list