On 4/25/07, Phillip J. Eby <[EMAIL PROTECTED]> wrote:
> At 04:43 PM 4/25/2007 -0700, Guido van Rossum wrote:
> >This is a very good point. Perhaps we can come up with a way to make
> >isinstance and issubclass into something like GFs (without requiring
> >the whole GF machinery).
> >
> >I'll think about it some more.
>
> __special__ methods are how Python currently defines built-in GFs, so
> perhaps __isinstance__ and __issubclass__ slots (and their __r*__
> counterparts) should suffice.

Yeah. The pragmatic issues are (a) how easy is it to add this to the
metaclass; (b) whether to keep the existing "abstract
isinstance/issubclass" code which looks for __class__ and __bases__
attributes and believes whatever they return.

> OTOH, the old PEP 246 (implemented by both PyProtocols and zope.interface)
> just uses __conform__ and __adapt__ and basically works the same way as an
> __isinstance__/__risinstance__ pair...

Are pairs needed? I was hoping that isinstance(x, C) would only need
to be overridden on the class C, and issubclass(D, C) would only need
to be overridden on C as well. In particular, the use case brought up
here is isinstance(42, Ring) and issubclass(int, Ring). So we'd want
to add something to Ring.

-- 
--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

Reply via email to