Ich schreibe eine Klasse, die von einer Bibliothek erbt.Destruktoren überschreiben, ohne ihre Eltern anzurufen
In dieser Klasse überschreibe ich den Destruktor, so dass ich eine Funktion aufrufen kann, die auf eine bestimmte Weise putzt. Wenn ich nicht aufrufen super() .__ del __() bedeutet das immer noch, dass Ressourcen bei der Zerstörung der Klasse gereinigt werden? Gibt es eine Chance, dass dieser Code zum Beispiel ein Speicherleck einführt?
class foo(some_library):
...
def __del__(self):
self.proprietary_cleaning_function()
sind Funktionen wie __init__ oder __del__ anders in der Art, wie sie außer Kraft gesetzt werden und macht den Garbage Collection-Mechanismus in Python Arbeit nach __del__?
Ist das der gleiche Fall für, wenn die \ _ \ _ del \ _ \ _ Methode nicht in der Elternklasse implementiert ist? d. h. übergeordnete Objekte del? – GLaDOS
@GLaDOS Nein, wenn die Elternklasse nicht die Methode '__del__' hat. Aber wenn die Methode eingebaut ist, müssen Sie sie noch explizit aufrufen. – Kasramvd