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.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to