At 04:16 PM 1/10/05 -0800, Michel Pelletier wrote:
> From: Guido van Rossum <[EMAIL PROTECTED]>
> Subject: Re: [Python-Dev] PEP 246, redux
>
> I'm wondering if someone could do a similar thing for PEP 245,
> interfaces syntax? Alex hinted that it's a couple of rounds behind the
> developments in Zope and Twisted.

Nothing implements 245, which is just about the syntax,

The comment Guido's alluding to was mine; I was referring to PEP 245's use of '__implements__', and the difference between what a "class implements" and an "instance provides". Twisted and Zope's early implementations just looked for ob.__implements__, which leads to issues with distinguishing between what a "class provides" from what its "instances provide".


So, I was specifically saying that this aspect of PEP 245 (and Guido's basing a Python interface implementation thereon) should be re-examined in the light of current practices that avoid this issue. (I don't actually know what Zope currently does; it was changed after I had moved to using PyProtocols. But the PyProtocols test suite tests that Zope does in fact have correct behavior for instances versus classes, because it's needed to exercise the PyProtocols-Zope interop tests.)


I like implements, but any spelling works for me.  "implements" strikes me as
an elegant counterpart to "interface" and risks minimal breakage.  Can we
still import and say "implements()" for b/w compatibility and for those of us
who do want an explicit statement like that?

If I understand Guido's proposal correctly, it should be possible to make a backward-compatible 'implements()' declaration function. Maybe not *easy*, but certainly possible.


_______________________________________________
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

Reply via email to