0Pricing
Mojo Academy · Lekcja

Niszczenie i __del__

Sprzątaj po zakończeniu życia wartości.

Niszczenie i __del__ to bezpłatna lekcja Mojo Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Mojo Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Mojo Academy zawiera 4 lekcji w sumie.

Każda wartość ma swój koniec

Gdy wartość nie jest już potrzebna, jej życie dobiega końca, a Mojo ją niszczy. To moment na posprzątanie zasobów, które posiadała. 🧹

Metoda destruktora

Mojo wywołuje specjalną metodę o nazwie __del__, aby zniszczyć wartość. Jest ona uruchamiana automatycznie, gdy wartość wyjdzie poza zakres.

fn __del__(owned self):
    pass

Deterministyczny czas działania

Mojo niszczy wartości w przewidywalnym momencie — gdy tylko zostaną użyte po raz ostatni. Nie trzeba czekać na garbage collector.

Ostatnie użycie, nie koniec bloku

Mojo uruchamia __del__ natychmiast po ostatnim użyciu wartości, często jeszcze przed zamknięciem bloku. Dzięki temu zasoby są zwalniane tak wcześnie, jak to możliwe.

Zwalniaj to, co posiadasz

Jeśli Państwa typ przechowuje bufor na stercie, __del__ jest miejscem, w którym należy go zwolnić. Zapobiega to wyciekom pamięci w miarę działania programu.

Państwo odpowiadają za sprzątanie

Wewnątrz __del__ wartość jest własnością Państwa kodu, więc można bezpiecznie zwolnić jej zasoby. Po wykonaniu tej metody wartość już nie istnieje.

Często generowany automatycznie

W przypadku prostych typów nie trzeba nic pisać. Mojo generuje destruktor, który po kolei sprząta każde pole, zapobiegając wyciekom.

Kiedy go dostosować

Własną metodę __del__ należy napisać, gdy zarządza się zasobem niskopoziomowym, takim jak alokacja lub uchwyt pliku, który wymaga jawnego zwolnienia.

Uruchamiany dokładnie raz

Każda wartość jest niszczona dokładnie raz. Przeniesienie przekazuje własność, więc tylko ostatni właściciel uruchamia __del__, unikając podwójnego zwalniania.

Bez użycia po zniszczeniu

Po zakończeniu działania __del__ Mojo gwarantuje, że wartość już nie istnieje. Reguły własności uniemożliwiają dostęp do zwolnionych danych.

Bezpieczeństwo bez GC

Deterministyczne niszczenie zapewnia kontrolę znaną z C, a jednocześnie wbudowane bezpieczeństwo. Sprzątanie odbywa się na czas, przewidywalnie i automatycznie.

Szybkie sprawdzenie

Sprawdźmy niszczenie wartości.

Podsumowanie

__del__ uruchamia się, gdy życie wartości dobiega końca — deterministycznie i dokładnie raz — umożliwiając bezpieczne sprzątanie bez GC. 🎯

Często zadawane pytania

Czy lekcja „Niszczenie i __del__” jest bezpłatna?

Tak — pełny tekst „Niszczenie i __del__” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Mojo Academy, przejdź na CoddyKit PRO. Kurs Mojo Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Niszczenie i __del__”?

Sprzątaj po zakończeniu życia wartości. Ćwiczysz Mojo Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Mojo Academy?

Nie wymagamy żadnego doświadczenia. Mojo Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Niszczenie i __del__”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Mojo Academy?

Tak. Każda lekcja Mojo Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Semantyka kopiowania a przenoszenia
  2. Metoda __copyinit__
  3. Metoda __moveinit__
  4. Niszczenie i __del__
← Powrót do Mojo Academy