Zanurkuj w Pythonie/Metody specjalne: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
W przykladzie 5.13 nie bylo przetlumaczone slowo genre
Linia 55:
# W tym miejscu zawarte jest sedno całej klasy <tt>MP3FileInfo</tt>: jeśli przypisujemy pewną wartość do klucza <tt>"plik"</tt>, chcemy wykonać dodatkowo pewne operacje.
# Dodatkowe operacje dla klucza <tt>"plik"</tt> zawarte są w metodzie <code>__parse</code>. Jest to inna metoda klasy <code>MP3FileInfo</code>. Kiedy wywołujemy metodę <code>__parse</code> używamy zmiennej <code>self</code>. Gdybyśmy wywołali samo <code>__parse</code>, odnieślibyśmy się do normalnej funkcji, która jest zdefiniowana poza klasą, a tego nie chcemy wykonać. Kiedy natomiast wywołamy <code>self.__parse</code> będziemy odnosić się do metody znajdującej się wewnątrz klasy. Nie jest to niczym nowym. W identyczny sposób odnosimy się do [[../Klasa opakowująca UserDict|atrybutów obiektu]].
# Po wykonaniu tej dodatkowej operacji, chcemy wykonać metodę nadklasy. Pamiętajmy, że Python nigdy nie zrobi totego za nas; musimy zrobić to ręcznie. Zwróćmy uwagę na to, że odwołujemy się do bezpośredniej nadklasy, czyli do <code>FileInfo</code>, chociaż on nie posiada żadnej metody o nazwie <code>__setitem__</code>. Jednak wszystko jest w porządku, ponieważ Python będzie wędrował po drzewie przodków jeszcze wyżej dopóki nie znajdzie klasy, która posiada metodę, którą wywołujemy. Tak więc ta linia kodu znajdzie i wywoła metodę <code>__setitem__</code>, która jest zdefiniowana w samej wbudowanej klasie słownika, w klasie <code>dict</code>.
 
{{Infobox|