something wrong with isinstance
Peter Otten
__peter__ at web.de
Fri Feb 13 05:43:03 EST 2009
Gabriel Genellina wrote:
> En Fri, 13 Feb 2009 08:07:58 -0200, Carl Banks <pavlovevidence at gmail.com>
> escribió:
>
>> Well, the OP said he was using Python 3.0, where all classes are new-
>> style classes.
>>
>> But that brings up another very slight possibility, though not a very
>> likely one in this case: the behavior of isinstance can be
>> customized. It can happen unbeknownst to a user who subclasses a
>> class that does that.
>
> Really? I didn't know that -- how do you do that?
>>> class Type(type):
... def __instancecheck__(self, other): return True
...
>>> class A(metaclass=Type): pass
...
>>> class B: pass
...
>>> isinstance(B(), A)
True
See also
http://www.python.org/dev/peps/pep-3119/#overloading-isinstance-and-issubclass
I doubt that this is the source of the OP's troubles, though.
Peter
More information about the Python-list
mailing list