3. Python Mixin (Mehrfachvererbung)

Was ist ein Mixin in Python?

Ein Mixin

Python Mixin Beispiel

Zunächst wird die Klasse Person implementiert:

class Person:
    def __init__(self, name):
        self.name = name

Dann wird eine Klasse Employee definiert, die von Person erbt:

class Employee(Person):
    def __init__(self, name, skills, dependents):
        super().__init__(name)
        self.skills = skills
        self.dependents = dependents

Zuletzt wird eine neue Instanz von Employee erzeugt:

if __name__ == '__main__':
    e = Employee(
        name='John',
        skills=['Python Programming''Project Management'],
        dependents={'wife': 'Jane', 'children': ['Alice', 'Bob']}
    )

Mehrerer Mixin Klassen kombinieren

Angenommen, Sie möchten das Employee Objekt zu JSON konvertieren. Dazu können Sie zunächst eine neue Mixin-Klasse definieren, die das Standardmodul json verwendet:

import json

class JsonMixin:
    def to_json(self):
        return json.dumps(self.__dict__)

Ergänzen Sie dann die Klasse Employee so, dass sie zusätzlich von JsonMixin erbt, wodurch die Methode to_json auf Employee verfügbar wird:

class Employee(JsonMixin, Person):
    def __init__(self, name, skills, dependents):
        super().__init__(name)
        self.skills = skills
        self.dependents = dependents

Im Folgenden wird eine neue Instanz der Klasse Employee erstellt und nach JSON konvertiert:

if __name__ == '__main__':
    e = Employee(
        name='John',
        skills=['Python Programming''Project Management'],
        dependents={'wife': 'Jane', 'children': ['Alice', 'Bob']}
    )

    print(e.to_json())

© Daniel Fahrni Quellen: