Interface Inheritance
Interfaces can extend other interfaces by listing the other interfaces as base interfaces.
Functions
- extends(interface) – returns boolean value, whether one interface extends another.
- isOrExtends(interface) – returns boolean value, whether interfaces are same or one extends another.
- isEqualOrExtendedBy(interface) – returns boolean value, whether interfaces are same or one is extended by another.
import zope.interface class BaseI(zope.interface.Interface): def m1( self , x): pass def m2( self ): pass class DerivedI(BaseI): def m3( self , x, y): pass @zope .interface.implementer(DerivedI) class cls : def m1( self , z): return z * * 3 def m2( self ): return 'foo' def m3( self , x, y): return x ^ y # Get base interfaces print (DerivedI.__bases__) # Ask whether baseI extends # DerivedI print (BaseI.extends(DerivedI)) # Ask whether baseI is equal to # or is extended by DerivedI print (BaseI.isEqualOrExtendedBy(DerivedI)) # Ask whether baseI is equal to # or extends DerivedI print (BaseI.isOrExtends(DerivedI)) # Ask whether DerivedI is equal # to or extends BaseI print (DerivedI.isOrExtends(DerivedI)) |
Output :
(<InterfaceClass __main__.BaseI>, ) False True False True
Python-interface module
In object-oriented languages like Python, the interface is a collection of method signatures that should be provided by the implementing class. Implementing an interface is a way of writing an organized code and achieve abstraction.
The package zope.interface provides an implementation of “object interfaces” for Python. It is maintained by the Zope Toolkit project. The package exports two objects, ‘Interface’ and ‘Attribute’ directly. It also exports several helper methods. It aims to provide stricter semantics and better error messages than Python’s built-in abc module.