Python Destruktor
Destruktoren werden aufgerufen, wenn ein Python-Objekt bereinigt werden muss. Es hat im Grunde eine völlig entgegengesetzte Rolle eines Konstruktors und wird verwendet, um die Operationen umzukehren, die ein Konstruktor ausführt. Destruktoren werden hauptsächlich eingesetzt, um in einem Programm zu organisieren und die Standards für die Codierung zu implementieren.
Dieses Tutorial demonstriert die Verwendung eines Destruktors in Python.
Der Bedarf an Destruktoren in Python ist nicht so groß wie in anderen Programmiersprachen wie C++, da Pythons Garbage Collector automatisch die Speicherverwaltung übernimmt. In Python gibt es jedoch Destruktoren, und dieser Artikel erklärt ihre Verwendung und Funktionsweise.
Wir verwenden die Funktion __del__()
als Destruktor in Python. Wenn der Programmierer die Funktion __del__()
aufruft, werden alle Objektreferenzen entfernt, was als Garbage Collection bekannt ist.
Die Syntax für den Destruktor lautet wie folgt:
def __del__(self):
# Write destructor body here
Die Vorteile der Verwendung von Destruktor in Python-Programmen sind unten aufgeführt.
- Speicherplatz wird freigegeben, da unnötige speicherverbrauchende Objekte automatisch gelöscht werden.
- Es ist einfach, da es automatisch aufgerufen wird.
Der folgende Code verwendet einen Destruktor in Python.
class Fruits:
# Calling constructor
def __init__(self):
print("Fruits created.")
# Calling destructor
def __del__(self):
print("Destructor called, Fruits deleted.")
obj = Fruits()
del obj
Der obige Code liefert die folgende Ausgabe:
Fruits created.
Destructor called, Fruits deleted.
Der obige Code zeigt, dass der Destruktor aufgerufen wurde, nachdem das Programm beendet wurde oder alle angegebenen Referenzen auf das Objekt gelöscht wurden. Dies bedeutet, dass der Wert des Referenzzählers für das angegebene Objekt nach einem bestimmten Zeitpunkt Null wird und nicht, wenn das angegebene Objekt den Gültigkeitsbereich verlässt.
Hier ist ein weiterer Code, der den Destruktor weiter erklärt.
class Fruits:
def __del__(self):
print("Fruits deleted")
a = Fruits()
del a
a = Fruits()
b = a
del b
del a
Im obigen Code ist eine Klasse Fruits
definiert, und das Objekt a
ist eine Referenz auf die Klasse, während das Objekt b
eine lokale Kopie dieser Referenz a
ist. Beim Löschen von b
wird die Funktion nicht aufgerufen, da sie nur die lokale Kopie enthält und sonst nichts.
Sowohl Konstruktoren als auch Destruktoren sind in der Welt der Programmierung unverzichtbar, egal welche Sprache der Programmierer verwendet. Destruktoren spielen eine wichtige Rolle bei der Garbage Collection. Wir sehen vielleicht keine großen Änderungen in kleinen Codestücken, aber in komplexen Programmen und Codes auf Produktionsebene, bei denen die Speichernutzung eine große Priorität hat, ist die Bedeutung von Destruktoren ziemlich deutlich.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn