mixin

Article de wikipedia

Un mixin est une classe abstraite (cf ABC) qui sert à rajouter des propriétés à une sous-classe concrète. C'est souvent lié à l'héritage multiple.

Dans la doc python sur le module collection, un exemple est donné pour construire un ensemble (sous-classe de Set) selon son goût, par utilisation de la technique de mixin (on ré-écrit - substitue - init, iter et contains, les autres fonctions ou opérateurs étant héritées.

class ListBasedSet(collections.Set):

''' Alternate set implementation favoring space over speed and not requiring the set elements to be hashable. '''

def __init__(self, iterable):

self.elements = lst = []

for value in iterable:

if value not in lst :

lst.append(value)

def __iter__(self):

return iter(self.elements)

def __contains__(self, value):

return value in self.elements

def __len__(self):

return len(self.elements)

s1 = ListBasedSet('abcdef')

s2 = ListBasedSet('defghi')

overlap = s1 & s2


» Glossaire du langage python