[Python-Dev] Small misleadingness in docs

Terry Reedy tjreedy at udel.edu
Sat Feb 14 18:18:27 CET 2009


Greg Ewing wrote:
> Georg Brandl wrote:
> 
>> Since I cannot imagine a scenario where you would want to have 
>> non-classes
>> as the arguments of issubclass(),
> 
> I had one today, which is what led me to discover this.
> I'm working on a Python-Ruby bridge that wraps Ruby
> objects and classes in Python objects.
> 
> I wanted to make isinstance() and issubclass() work in
> the expected way when applied to wrappers around Ruby
> classes. The ability to fake things using __classes__
> and __bases__ turned out to be very handy.

The new (in 3.0 and maybe 2.6, but undocumented) special methods 
__instancecheck__ and __subclasscheck__ let one overload the default 
behavior of isinstance and issubclass.  So there is no reason to have 
the default behavior necessarily cover 'unusual' cases.  See
http://www.python.org/dev/peps/pep-3119/#overloading-isinstance-and-issubclass
and http://bugs.python.org/issue5250.



More information about the Python-Dev mailing list