__slots__ in Python: Was ist das und wozu dient es?

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist __slots__ und wozu dient es? Ein vollständiger Leitfaden zur Klassenoptimierung in Python

In Python spielen Klassen eine zentrale Rolle in der objektorientierten Programmierung. Bei intensiver Arbeit mit Objekten fällt jedoch oft auf, dass solche Programme eine beträchtliche Menge an Speicher verbrauchen. Dies wird besonders kritisch, wenn Sie Millionen von Instanzen derselben Klasse erstellen.

In solchen Fällen hilft ein spezieller Mechanismus – __slots__. Es ist nicht nur ein syntaktisches Element, sondern ein leistungsstarkes Optimierungswerkzeug, mit dem Sie den Speicher kontrollieren und die Programmgeschwindigkeit erhöhen können.

Lassen Sie uns klären, was __slots__ ist, wie man es verwendet und in welchen Situationen es wirklich notwendig ist.


Was ist __slots__ in Python?

__slots__ ist ein spezielles Klassenattribut, das die Liste der zulässigen Attribute für Instanzen dieser Klasse einschränkt.

Standardmäßig werden die Attribute von Objekten in Python im Dictionary __dict__ gespeichert. Das ist praktisch, aber speicherineffizient, insbesondere wenn viele gleichartige Objekte erstellt werden.

Wenn Sie __slots__ definieren, erstellt Python anstelle des Dictionaries statisch zugewiesene Strukturen zur Speicherung der Attribute. Das spart erheblich Speicher und beschleunigt den Zugriff auf diese Attribute.


📚 Einfaches Beispiel ohne Verwendung von __slots__:

python
class Person: def __init__(self, name, age): self.name = name self.age = age p = Person("Alice", 30) print(p.__dict__) # {'name': 'Alice', 'age': 30}

Wie Sie sehen, werden alle Attribute im __dict__ gespeichert.

Blogs

Buchempfehlungen