Mixin : une forme d'héritage multiple pour l'amélioration des classes
Référence de Mark Lutz aux "mixins" dans Programmation Python soulève des questions pour ceux qui sont familiers avec les langages basés sur C. Un mixin est un type particulier d'héritage multiple qui permet d'étendre une classe sans sous-classement traditionnel.
Utilisations des mixins
Les mixins sont principalement utilisés dans deux situations :
Par exemple, dans le système de requête et de réponse de Werkzeug, vous pouvez créer un objet de requête de base en utilisant BaseRequest. Pour ajouter la prise en charge des en-têtes d'acceptation, utilisez AcceptMixin :
from werkzeug import BaseRequest, AcceptMixin class Request(AcceptMixin, BaseRequest): pass
Pour plusieurs fonctionnalités facultatives (par exemple, accepter les en-têtes, les balises et l'authentification), vous pouvez enchaîner plusieurs mixins :
from werkzeug import BaseRequest, AcceptMixin, ETagRequestMixin, UserAgentMixin, AuthenticationMixin class Request(AcceptMixin, ETagRequestMixin, UserAgentMixin, AuthenticationMixin, BaseRequest): pass
Différences par rapport à l'héritage multiple
Les mixins diffèrent de l'héritage multiple traditionnel par leur objectif prévu. Les mixins, comme dans l'exemple ci-dessus, servent souvent de composants auxiliaires qui augmentent les classes existantes. En revanche, l'héritage multiple typique implique que la classe héritée peut être autonome (par exemple, Authenticator).
Avantages des mixins
Les mixins offrent plusieurs avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!