Outils personnels
Vous êtes ici : Accueil Python Zope 3 Interface

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éthodefonction
 implementedByteste si une classe implémente une interface
 providedByteste 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"


Actions sur le document