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

Usunięta treść Dodana treść
Nie podano opisu zmian
Poprawienie literówki
Linia 37:
 
# Tak jak <tt>__getitem__</tt>, metoda <tt>__setitem__</tt> po prostu pozwala metodzie <tt>self.data</tt> słownika wykonać jej pracę. I tak jak w przypadku <tt>__getitem__</tt> nie musisz wołać jej w ten sposób. Python wywoła <tt>__setitem__</tt> jeśli tylko użyjesz odpowiedniej składni.
# Ta linia wygląda jak użycie słownika. Tylko, że <tt>f</tt> jest obiektem klasy próbującej udawać słownik a metoda <tt>__stitem____setitem__</tt> jest ważną częścią tej maskarady. Ta linia kodu powoduje właściwie wywołanie <tt>f.__setitem__("genre", 32)</tt>.
 
<tt>__setitem__</tt> jest metodą specjalną, ponieważ Python wywołuje ją za Ciebie, ale ciągle jest metodą klasy. Tak łatwo, jak zdefiniowałeś ją w klasie <tt>UserDict</tt>, możesz ją przedefiniować w klasach pochodnych i zasłonić metodę klasy podstawowej. To pozwala Ci definiować klasy, które czasami zachowują się jak zwykły słownik ale potrafią coś więcej.