implementsOnly(*interfaces)
Declare the only interfaces implemented by instances of a class
This function is called in a class definition.
The arguments are one or more interfaces or interface specifications (IDeclaration objects).
Previous declarations including declarations for base classes are overridden.
This function is provided for convenience. It provides a more convenient way to call classImplementsOnly. For example:
implementsOnly(I1)
is equivalent to calling:
classImplementsOnly(I1)
after the class has been created.
Consider the following example:
>>> from zope.interface import Interface >>> class IA1(Interface): pass ... >>> class IA2(Interface): pass ... >>> class IB(Interface): pass ... >>> class IC(Interface): pass ... >>> class A(object): implements(IA1, IA2) ... >>> class B(object): implements(IB) ... >>> class C(A, B): ... implementsOnly(IC) >>> ob = C() >>> int(IA1 in providedBy(ob)) 0 >>> int(IA2 in providedBy(ob)) 0 >>> int(IB in providedBy(ob)) 0 >>> int(IC in providedBy(ob)) 1
Instances of C implement IC, regardless of what instances of A and B implement.