[Twisted-Python] Interfaces and adapters

Itamar Shtull-Trauring itamar at itamarst.org
Fri Aug 26 12:12:02 EDT 2005

On Fri, 2005-08-26 at 16:30 +1000, Andrew Bennetts wrote:

> > As it is for now, the registerAdapter accepts any Foo, without regarding
> > what it implements.
> It has to accept pretty much anything -- adapters can be e.g. functions as
> well as classes.
> > Could somebody give any rationale why this condition shouldn't always hold:
> > 
> > foo = IFoo(bar)
> > assert IFoo.providedBy(foo)
> > 
> > Seems it is not unreasonable to expect this behaviour, because it is
> > exactly what interfaces are all about, or am I wrong?

If the adapter is a function, the function may not implement the
interface. The actual expected behavior is that the result of *calling*
the adapter *provides* the interface. An adapter class may well
implement the interface in order for this to happen, but it's not a
necessary condition.

More information about the Twisted-Python mailing list