[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