[Twisted-Python] Questions regarding serviceCollection and Interfaces.
James Y Knight
foom at fuhm.net
Wed Jul 6 10:29:03 MDT 2005
On Jul 6, 2005, at 10:18 AM, kgi wrote:
> I do have one question arising from the Zope documentation, though.
> In the
> link above, it says (abridged):
>
> """
> class IFoo(zope.interface.Interface):
> def bar(q, r=None):
> """bar blah blah"""
> [...]
> Note that `bar` doesn't take a `self` argument. Interfaces document
> how an object is *used*. When calling instance methods, you don't
> pass a `self` argument, so a `self` argument isn't included in the
> interface signature.
> """
>
> Yet all the examples I've seen in the Twisted documentation have
> interface
> methods that contain "self" parameters
Twisted hasn't always used Zope Interfaces -- we used to have our
own. In our implementation, we *did* use self as the first argument.
Thus, the general rule is, if you inherit from
twisted.python.components.Interface (our backwards compatibility
wrapper), you should follow our rule and include self as the first
argument. However, if you inherit directly from
zope.interface.Interface, you should follow zope's rule and not
include self.
That said, the signature isn't really used for anything at the
moment. I've played around with an interface enforcement wrapper that
does use the signature, but that's just playing around at the moment.
James
More information about the Twisted-Python
mailing list