Interface
Par Benjamin Poulain -
—
Dernière modification
22/04/2008 09:51
Petite référence rapide sur les interfaces Zope 3
Exemple
from zope.interface import Interface
from zope.interface import Attribute
class ISomeone (Interface):
"""interface to store info about ...
...someone"""
name = Attribute("description de l'attribut")
def makeItJump(hauteur): #pas besoin de self pour une interface
"""fait sauter la personne""" #pas besoin de pass grâce au docstring
A savoir
- Le nom d'une interface commence par un i majuscule par convention
- Pas besoin de self dans les arguments des méthodes, c'est une interface, pas une implémentation
- Pas besoin de pass pour les méthodes, le docstring suffit
- Une interface peut hériter d'une autre interface, une classe implémentant des interfaces n'hérite pas celles-ci, elle utilise implements()(ou modulesProvides() pour un module).
- L'implémentation de l'interface est impliqué mais pas vérifiée, les fonctions de zope.interface.verify permet de s'assurer qu'un objet respecte une interface.
Méthodes d'une interface
| méthode | fonction |
|---|---|
| implementedBy | teste si une classe implémente une interface |
| providedBy | teste si un objet implémente ou nom une interface |
Implémentation
from zope.interface import implements
from IExemple import ISomeone, ISometwo
class BoringPeople(object):
"""People who don't like to jump"""
implements(ISomeone, ISometwo)
def __init__(self, name):
self.name = name
def makeItJump(hauteur):
return "I don't like jump"

