On Mon, Jun 13, 2011 at 12:38 PM, Jim Fulton <j...@zope.com> wrote:
> On Sun, Jun 12, 2011 at 4:48 PM, Chris McDonough <chr...@plope.com> wrote:
>> Currently if you ask a registry to singly-adapt an object to an
>> interface, and the object you're trying to adapt implements that
>> interface, here's what happens:
>>>>> from zope.component.registry import Components
>>>>> c = Components()
>>>>> from zope.interface import Interface, implements
>>>>> class IFoo(Interface): pass
>>>>> class Foo(object):
>> ... implements(IFoo)
>>>>> foo = Foo()
>>>>> c.queryAdapter(IFoo, foo)
>> In order to get the object itself back from such an adaptation, you need
>> to use the default= argument.
>>>>> c.queryAdapter(IFoo, foo, default=foo)
>> <__main__.Foo object at 0x24a3910>
>> This seems slightly inconsistent with the adaptation worldview imposed
>> by getAdapter/queryAdapter. I think it would be more consistent if
>> "c.queryAdapter(IFoo, foo)" returned foo if foo already implemented IFoo
>> and there was no other more specific adapter registered for the IFoo/foo
>> pair in the registry, no?
> I don't know what getAdapter/queryAdapter you're referring to in
> "This seems slightly inconsistent with the adaptation worldview imposed
> by getAdapter/queryAdapter."
> Do you mean " This seems slightly inconsistent with the adaptation
> worldview imposed
> by interface __call__." ?
By the later messages, I can see that that is what you meant to say.
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -