Metoda __del__ w Pythonie
Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji
Metoda __del__ w Pythonie
__del__ to specjalna metoda w Pythonie wykonywana automatycznie podczas niszczenia obiektu, czyli wtedy, gdy obiekt ma zostać usunięty z pamięci przez mechanizm zarządzania pamięcią. Pełni rolę podobną do destruktora znanego z innych języków programowania.
Składnia
class Plik:
def __del__(self):
print("Obiekt jest niszczony")
Metoda __del__ należy do tzw. metod specjalnych, nazywanych też metodami magicznymi lub dunder methods, ponieważ jej nazwa zaczyna się i kończy podwójnym podkreśleniem.
Przykład użycia
class Test:
def __init__(self):
print("Utworzono obiekt")
def __del__(self):
print("Usunięto obiekt")
obiekt = Test()
del obiekt
Przykładowy wynik:
Utworzono obiekt
Usunięto obiekt
Ważne informacje egzaminacyjne
__init__jest wykonywana przy tworzeniu obiektu.__del__jest wykonywana przy niszczeniu obiektu.__str__zwraca tekstową reprezentację obiektu dla użytkownika.__repr__zwraca techniczną reprezentację obiektu, przydatną np. podczas debugowania.
Uwaga praktyczna
Nie należy zakładać, że __del__ wykona się zawsze natychmiast po instrukcji del. W Pythonie usuwaniem obiektów zajmuje się mechanizm zarządzania pamięcią i garbage collector. Dlatego do zwalniania zasobów, np. plików lub połączeń sieciowych, często lepiej używać instrukcji with i menedżerów kontekstu.