On 5/12/07, Greg Ewing <[EMAIL PROTECTED]> wrote: > 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.
Well, not if x.__class__ overrides all of C's methods. And this registration business we're *supposed* to register only classes that provide concrete implementation of all of C's methods, which comes down to the same thing. Also, I'm unclear under what circumstances knowing that would make a difference in your understanding of a program? -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ 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