Kapitel 22. Dynamische Attribute und Eigenschaften

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

Die entscheidende Bedeutung von Eigenschaften liegt darin, dass ihre Existenz es vollkommen sicher und sogar ratsam macht, öffentliche Datenattribute als Teil der öffentlichen Schnittstelle deiner Klasse zu veröffentlichen.

Martelli, Ravenscroft, und Holden, "Warum Eigenschaften wichtig sind"1

Datenattribute und Methoden werden in Python als Attribute bezeichnet. Eine Methode ist ein Attribut, das aufrufbar ist.Dynamische Attribute haben die gleiche Schnittstelle wie Datenattribute - also obj.attr-, werden aber bei Bedarf berechnet. Dies folgt dem Uniform Access Principle von Bertrand Meyer:

Alle von einem Modul angebotenen Dienste sollten über eine einheitliche Notation verfügbar sein, die nicht verrät, ob sie durch Speicherung oder durch Berechnung implementiert werden .2

Es gibt verschiedene Möglichkeiten, dynamische Attribute in Python zu implementieren. Dieses Kapitel behandelt die einfachsten Möglichkeiten: den @property Dekorator und die __getattr__ Spezialmethode.

Eine benutzerdefinierte Klasse, die __getattr__ implementiert, kann eine Variante von dynamischen Attributen implementieren, die ich als virtuelle Attribute bezeichne: Attribute, die nirgendwo im Quellcode der Klasse explizit deklariert werden und in der Instanz __dict__ nicht vorhanden sind, aber an anderer Stelle abgerufen ...

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.