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