Model danych w pythonie
https://docs.python.org/3/reference/datamodel.html
masz tam wyjaśnione.
Metody magiczne to funkcje, które należą do klasy. Mogą to być zarówno instancje, jak i metody klasy. Można je łatwo zidentyfikować, ponieważ wszystkie zaczynają się i kończą podwójnym podkreśleniem, tzn. wyglądają w ten sposób: __actual_name__. Stąd też pochodzi określenie dunder – double underscores (podwójne podkreślenie). Trochę mi zajęło, zanim do tego doszedłem.
metody magiczne nie są przeznaczone do bezpośredniego wywoływania przez Ciebie, a dokładnie przez określone akcje. które ty jako użytkownik stosujesz dla swojej klasy lub instancji klasy.
Umożliwiają one pisanie klas, które mogą być używane razem z metodami wbudowanymi w Pythona. Jeśli tak zrobisz, możesz pisać, a powiedziałbym, że nawet na pewno będziesz pisać bardziej czytelny i mniej rozbudowany kod. Mam nadzieję, że zauważyliście to po tej małej zajawce w poprzednim akapicie.