[Zope3-dev] Re: adapter registration question

Dieter Maurer dieter at handshake.de
Wed Nov 15 14:57:20 EST 2006


Philipp von Weitershausen wrote at 2006-11-15 20:34 +0100:
>Dieter Maurer wrote:
>> Philipp von Weitershausen wrote at 2006-11-15 15:08 +0100:
>>> ...
>>>> def myStrAdapter(something):
>>>>    return str(something)
>>> It instantiates a 'str' object. The 'str' object is the adapter for 
>>> 'something'.
>> 
>> Huh? This would be a severe terminology abuse:
>
>I agree, it's bending the terminology a lot. It wasn't me who came up 
>with the 'str' and 'int' example.
>
>>   An adapter should adapt something to something else *BUT*
>>   an "str" object does not adapt anything (it does not operate on
>>   another object).
>
>Well, imagine
>
>   >>> str(123)
>   '123'
>
>Here '123' is the 'str' adapter of the integer 123. It's conceptually 
>the same if you do

That's the terminology abuse:

   '123' is not an adapter because it does not do the adaption.

   '123' is the *result* of adapting 123 to 'str'.

   You may call '123' the 'str' adaption of the integer 123.
>
>   >>> IZopeDublinCore(myobj)
>
>except that in the str(123) case, you call the class directly instead of 
>using the Component Architecture's registry as a flexible dispatch.

With appropriate terminology use, you would call "IZopeDublinCore"
the adapter and "IZopeDublinCore(myobj)" the ZopeDublinCore
adaption (maybe adaptation) of "myobj".

Again "IZopeDublinCore(myobj)" is not an adapter but an adapted value.



-- 
Dieter


More information about the Zope3-dev mailing list