[Zope-dev] Two small convenience suggestions for zope.interface and zope.component

Chris Rossi chris at archimedeanco.com
Wed Apr 1 13:25:59 EDT 2009


Additionally, if I was grokking Lennart correctly yesterday,
__metaclass__ is going away, so the current metaclass implementation
is going to need some rejiggering.  What was unclear was whether a
single implementation could support both <=2.5 and >=2.6.

Chris


On Wed, Apr 1, 2009 at 1:09 PM, Martin Aspeli <optilude+lists at gmail.com> wrote:
> Hi Marius,
>
>
>> It's a Python 2.6/3.0 feature:
>
> Oh... sniff... I so want that. ;)
>
>>     from zope.component import adapter
>>     from zope.interface import implementer
>>
>>     @adapter(IFoo)
>>     @implementer(IBar)
>>     class MyClass(object):
>>
>>         def __init__(self, context):
>>             self.context = context
>>             ...
>>
>> which translates to the obvious
>>
>>     class MyClass(object):
>>
>>         def __init__(self, context):
>>             self.context = context
>>             ...
>>
>>     MyClass = implementer(IBar)(MyClass)
>>     MyClass = adapter(IFoo)(MyClass)
>>
>> assuming I got the application order right.
>
> Great.
>
>> I now also wonder if adapter()/implementer() would work when called with
>> classes rather than functions...?
>
> I would hope so, or it'd be really confusing. :)
>
> Martin
>
> --
> Author of `Professional Plone Development`, a book for developers who
> want to work with Plone. See http://martinaspeli.net/plone-book
>
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev at zope.org
> http://mail.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  **
> (Related lists -
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope )
>


More information about the Zope-Dev mailing list