PEP 245
Aahz Maruch
aahz at panix.com
Thu Apr 12 14:42:17 EDT 2001
In article <3ACDB3A1.9B4E3B5A at projtech.com>,
Scott Finnie <scott at projtech.com> wrote:
>
>Hmmm. A question about PEP245: how do interfaces differ from types?
>
>Both seem to have the same motivation: to declare not what something is,
>but what it can do:
>
> . "An object's type ... determines the operations that an object
> supports (e.g., ``does it have a length?)"
> - Python Language reference section 3.1
> . "Interfaces try to provide a way for you to ... specify a contractual
> obligation for your object"
> (PEP245, "The Problem" section).
>
>There are currently limitations on typing (only covers built-ins, object
>can only be of a single type) but neither of these seem justifiable
>reasons for introducing a new construct rather than extending the
>existing one?
What you're talking about here is the type/class split. There have been
a lot of suggestions for healing that, but they all require a *lot* of
work (plus probably breaking a lot of code). Interfaces are in a lot of
ways a gimmick for creating type-like functionality for classes.
There are some differences, though: Python currently does not have a
mechanism for specifying the interface for a type. It seems rather
likely that creating an interface mechanism for classes and then
extending it to types will be the easier and simpler route.
--
--- Aahz <*> (Copyright 2001 by aahz at pobox.com)
Androgynous poly kinky vanilla queer het Pythonista http://www.rahul.net/aahz/
Hugs and backrubs -- I break Rule 6
Why is this newsgroup different from all other newsgroups?
More information about the Python-list
mailing list