[Python-3000] Implementations: A syntax for extending method dispatching beyond type/class inheritance
Dave Anderson
python3000 at davious.org
Thu Dec 7 17:22:47 CET 2006
on 12/7/2006 10:57 AM Hasan Diwan wrote:
> On 07/12/06, Dave Anderson <python3000 at davious.org> wrote:
>>
>>
>> I feel on a different page from you.
>>
>> My best guess it is that
>>
>> def typeOfSuper(self):
>> pass(subclass)
>>
>> is ceding its implementation to its subclasses, kind of like what an
>> abstract class or interface would do
>>
>> but I feel my guess is wrong. Please clarify.
>
> No, that is spot-on.
The Implementations syntax sketch has no need for abstract classes,
since concrete classes serve as the interfaces. Still, in the syntax,
one could simply define a class with a bunch of empty methods, and it
would be usable as an abstract class.
>> The former is an example of someone writing a function whose first
>> parameter is expected to be any object that is derived from
>> MutableContainer (including dict), or is derived from a class that
>> implements MutableContainer (including those implementing dict), or is
>> derived from a class that specifically implements MutableContainer.add
>> using a declaration like:
>>
>> class CanAdd:
>> implements MutableContainer.add
>>
>> def add(self, key, value):
>
> I find you're making the whole "implements" procedure, a little too
> complex.
Ouch. Touché. :(
Simple things simple. Complex things possible.
More information about the Python-3000
mailing list