Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| modul:archiv:m320:learningunits:lu99:theorie:lu8-kapitel_4 [2026/08/30 14:06] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | modul:archiv:m320:learningunits:lu99:theorie:lu8-kapitel_4 [2026/08/30 14:06] (aktuell) – ↷ Seite von modul:m320:learningunits:lu99:theorie:lu8-kapitel_4 nach modul:archiv:m320:learningunits:lu99:theorie:lu8-kapitel_4 verschoben msuter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ==== 3. Python Mixin (Mehrfachvererbung) ==== | ||
| + | |||
| + | === Was ist ein Mixin in Python? === | ||
| + | |||
| + | Ein Mixin | ||
| + | * ist eine Klasse, | ||
| + | * definiert keinen neuen Typen. Daher ist es nicht zur direkten Instanziierung vorgesehen. | ||
| + | * bündelt eine Reihe von Methoden zur Wiederverwendung. Jedes Mixin sollte ein einziges spezifisches Verhalten haben und eng verwandte Methoden implementieren. | ||
| + | |||
| + | === Python Mixin Beispiel === | ||
| + | |||
| + | Zunächst wird die Klasse '' | ||
| + | |||
| + | < | ||
| + | class Person: | ||
| + | def __init__(self, | ||
| + | self.name = name | ||
| + | </ | ||
| + | |||
| + | Dann wird eine Klasse '' | ||
| + | |||
| + | < | ||
| + | class Employee(Person): | ||
| + | def __init__(self, | ||
| + | super().__init__(name) | ||
| + | self.skills = skills | ||
| + | self.dependents = dependents | ||
| + | </ | ||
| + | |||
| + | Zuletzt wird eine neue Instanz von '' | ||
| + | |||
| + | < | ||
| + | if __name__ == ' | ||
| + | e = Employee( | ||
| + | name=' | ||
| + | skills=[' | ||
| + | dependents={' | ||
| + | ) | ||
| + | </ | ||
| + | |||
| + | === Mehrerer Mixin Klassen kombinieren === | ||
| + | |||
| + | Angenommen, Sie möchten das '' | ||
| + | |||
| + | < | ||
| + | import json | ||
| + | |||
| + | class JsonMixin: | ||
| + | def to_json(self): | ||
| + | return json.dumps(self.__dict__) | ||
| + | </ | ||
| + | |||
| + | Ergänzen Sie dann die Klasse '' | ||
| + | |||
| + | < | ||
| + | class Employee(JsonMixin, | ||
| + | def __init__(self, | ||
| + | super().__init__(name) | ||
| + | self.skills = skills | ||
| + | self.dependents = dependents | ||
| + | </ | ||
| + | |||
| + | Im Folgenden wird eine neue Instanz der Klasse '' | ||
| + | |||
| + | < | ||
| + | if __name__ == ' | ||
| + | e = Employee( | ||
| + | name=' | ||
| + | skills=[' | ||
| + | dependents={' | ||
| + | ) | ||
| + | |||
| + | print(e.to_json()) | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | [[https:// | ||
| + | **Quellen**: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||