Kapitel 24. Klasse Metaprogrammierung

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Jeder weiß, dass das Debuggen doppelt so schwer ist wie das Schreiben eines Programms. Wenn du also beim Schreiben so schlau bist, wie du sein kannst, wie willst du es dann jemals debuggen?

Brian W. Kernighan und P. J. Plauger, Die Elemente des Programmierstils1

Klassen-Metaprogrammierung ist die Kunst, Klassen zur Laufzeit zu erstellen oder anzupassen. Klassen sind in Python Objekte erster Klasse, so dass mit einer Funktion jederzeit eine neue Klasse erstellt werden kann, ohne das Schlüsselwort class zu verwenden. Klassendekoratoren sind ebenfalls Funktionen, die jedoch dazu dienen, die dekorierte Klasse zu untersuchen, zu ändern und sogar durch eine andere Klasse zu ersetzen. Metaklassen schließlich sind das fortschrittlichste Werkzeug für die Klassen-Metaprogrammierung: Mit ihnen lassen sich ganz neue Kategorien von Klassen mit besonderen Eigenschaften erstellen, wie die abstrakten Basisklassen, die wir bereits gesehen haben.

Metaklassen sind mächtig, aber schwer zu rechtfertigen und noch schwerer richtig zu machen. Klassendekoratoren lösen viele der gleichen Probleme und sind einfacher zu verstehen. Außerdem hat Python 3.6PEP 487 - Einfachere Anpassung der Klassenerstellung implementiert und bietet spezielle Methoden, die Aufgaben unterstützen, für die zuvor Metaklassen oder Klassendekoratoren erforderlich ...

Get Fließendes Python, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.