Guido van Rossum wrote: > From this point, issubclass(InstrumentedList, Sequence) will be true > (and likewise for instances of it and isinstance(x, Sequence)). But > InstrumentedList's __mro__ and __bases__ are unchanged.
I think I've figured out what bothers me about this kind of overloading of isinstance(). Normally if isinstance(x, C) is true, we expect that a method call on x can at least potentially invoke a method of class C. But if isinstance(x, C) can be true even if C doesn't appear in the mro of x, this is no longer the case. This isn't so much of a worry when x is acting as a proxy for C, since it's probably forwarding method calls to a real instance of C somewhere. But using it in a more general way seems strange. -- Greg _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com