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

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
mNie podano opisu zmian
Nie podano opisu zmian
Linia 43:
Koncepcja ta jest prostotą całego szkieletu, który analizujemy w tym rozdziale. Każdy plik może posiadać własną klasę obsługi, która wie, w jaki sposób pobrać dane z różnych typów plików. Natychmiast po pobraniu niektórych atrybutów (jak nazwa pliku i lokacja), które znamy, klasa obsługi będzie wiedziała, jak otrzymać dalsze atrybuty automatycznie. Możemy to zrobić poprzez nadpisanie metody <tt>__setitem__</tt> method, sprawdzenie poszczególnych kluczy i wykonywanie dodatkowych operacji, jeśli dany klucz zostanie znaleziony.
 
Na przykład <tt>MP3FileInfo</tt> jest potomkiem <tt>FileInfo</tt>. Kiedy w <tt>MP3FileInfo</tt> ustawiamy klucz <tt>"name"</tt>, nie tylko ustawiamy sam kluczaklucz <tt>"name"</tt> (jak to robi jego przodek <tt>FileInfo</tt>), lecz także patrzymy do samego pliku na tagi MP3 i dodajemy pełny zbiór kluczy. Poniższy przykład pokazuje, w jaki sposób to działa.
 
'''Przykład 5.14. Nadpisywanie metody <tt>__setitem__</tt> w klasie <tt>MP3FileInfo</tt>'''