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

Usunięta treść Dodana treść
Sasek (dyskusja | edycje)
Nie podano opisu zmian
Sasek (dyskusja | edycje)
tłumaczenie
Linia 3:
Oprócz normalnych metod, jest te kilka metod specjalnych, które można definiować w klasach Pythona. Nie są one wywoływane bezpośrednio z Twojego kodu (jak zwykłe metody). Wywołuje je za Ciebie Python w określonych okolicznościach lub gdy użyjesz określonej składni.
 
Jak zauważyłeś w poprzednim rozdziale, użycie normalnych metod pozwalają zrobić duży krok w stronę obudowania słownika klasą. Ale ponieważ możesz zrobić ze słownikiem dużo więcej, niż wywołać jego metody, normalne metody nie wystarcza. Możesz na przykład pobierać i dodawać elementy, używając składni nie wywołując metod jawnie. W tym przypadku przydadzą się klasy specjale, które pozwalają zmapować elementy składni na wywołania metod.
As you saw in the previous section, normal methods go a long way towards wrapping a dictionary in a class. But normal methods alone are not enough, because there are a lot of things you can do with dictionaries besides call methods on them. For starters, you can get and set items with a syntax that doesn't include explicitly invoking methods. This is where special class methods come in: they provide a way to map non-method-calling syntax into method calls.
 
5.6.1. Getting and Setting Items
ExamplePrzykład 5.12. TheMetoda <tt>__getitem__ Special Method</tt>
 
def __getitem__(self, key): return self.data[key]
Linia 21:
 
Of course, Python has a __setitem__ special method to go along with __getitem__, as shown in the next example.
 
Example 5.13. The __setitem__ Special Method