[Zope3-dev] Re: "most specific" interface?
Philipp von Weitershausen
philipp at weitershausen.de
Fri Sep 16 09:32:25 EDT 2005
Florent Guillaume wrote:
> Philipp von Weitershausen wrote:
>
>> >>> from zope.app.content.interfaces import IContentType
>> >>> from zope.app.file.interfaces import IFile
>> >>> from zope.interface import directlyProvides
>> >>> directlyProvides(IFile, IContentType)
>
>
> Watch out! directlyProvides is evil, it *replaces* the interfaces
> provided by something. Here, if IFile implemented something else, it
> would be lost.
>
> You should always use:
>
> directlyProvides(ob, ISomething, directlyProvidedBy(ob))
>
> (Or use a convenience method to do that, I'm not sure if alsoProvides()
> was ever implemented.)
Yes, alsoProvides() is available in Zope 3.1. So,
>>> alsoProvides(ob, ISomething)
is the shorter spelling of Florent's line above.
Philipp
More information about the Zope3-dev
mailing list