Skip to Content
Fließendes Python, 2. Auflage
book

Fließendes Python, 2. Auflage

by Luciano Ramalho
August 2024
Intermediate to advanced
1014 pages
26h 54m
German
O'Reilly Media, Inc.
Book available
Content preview from Fließendes Python, 2. Auflage

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 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Python lernen, 5. Auflage

Python lernen, 5. Auflage

Mark Lutz
High Performance Python, 2. Auflage

High Performance Python, 2. Auflage

Micha Gorelick, Ian Ozsvald
Python in a Nutshell, 4. Auflage

Python in a Nutshell, 4. Auflage

Alex Martelli, Anna Martelli Ravenscroft, Steve Holden, Paul McGuire

Publisher Resources

ISBN: 9781098180362Supplemental Content