[Python-3000] Generic functions vs. OO
Phillip J. Eby
pje at telecommunity.com
Mon Nov 27 21:25:14 CET 2006
At 02:34 PM 11/27/2006 -0500, Jim Jewett wrote:
>I'm not sure that adding it to the builtin (but in a new name) would
>really buy much over an adapter (x in MyProto("asdf") ), but the
>interface fans may feel differently.
For what it's worth, in Chandler there is a system called Annotations that
allows third-party packages to add private attributes to existing
(persistent) data types. It's used to implement "stamping", which is a way
that you can (for example) dynamically change a note or photo into a task
or a calendar event.
So, if I want to be able to add calendar information to "stampable"
objects, I can do something like:
class CalendarEvent(Stamp):
# field definitions here
# method definitions
And then I can access fields on stamped items by using e.g.
CalendarEvent(someItem).startTime. So, effectively CalendarEvent is a kind
of adapter class, but we don't use the word adapter, simply because it
isn't relevant to the application domain. It's simply a way of having an
open system for adding additional data to existing object types. There are
no interfaces or generic functions involved, either, it's just a way of
separating namespaces belonging to independent developers.
I just mention it because the reaction to it among developers with no
previous exposure to Python adaptation has been fairly positive.
More information about the Python-3000
mailing list