On 5/14/07, Collin Winter <[EMAIL PROTECTED]> wrote:
> There really is no difference between roles and [EMAIL PROTECTED]
> ABCs. From my point of view, though, roles win because they don't
> require any changes to the interpreter; they're a much simpler way of
> expressing the same concept.

Ok, you clearly have an implementation in mind, but I don't know what
it is.  As far as I can tell:

* metaclass=Role ~ metaclass=ABCMeta, except that all methods must be abstract
* perform_role(role)(cls) ~ role.register(cls)
* performs(obj, role) ~ isinstance(obj, role)

And so, as far as I can see, without an Implementation section, all
you're propsing is a different syntax for the same functionality. Was
there a discussion of your implementation that I missed?

> You may like adding the extra complexity
> and indirection to the VM necessary to support
> issubclass()/isinstance() overriding, but I don't.

Have you looked at Guido's issubclass()/isinstance() patch
(http://bugs.python.org/1708353)?  I'd hardly say that 34 lines of C
code is substantial "extra complexity".

STeVe
-- 
I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a
tiny blip on the distant coast of sanity.
        --- Bucky Katt, Get Fuzzy
_______________________________________________
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