Argumenty w metodach Pythona muszą być podane w nawiasach. Dzieje się tak, ponieważ funkcje i metody używają nawiasów do wskazania, czy są wywoływane. Jeśli użyjesz nawiasów kwadratowych do wywołania metody, napotkasz błąd „TypeError: obiekt „metoda” nie podlega indeksowaniu”.
W tym przewodniku wyjaśnimy, co oznacza ten błąd i dlaczego możesz go napotkać. Spójrzmy na przykład tego błędu, który pomoże Ci opracować rozwiązanie.
TypeError: „metoda” obiekt nie jest subskrybowany
Subskrybowalne obiekty to obiekty z metodą __getitem__. Są to typy danych, takie jak listy, słowniki i krotki. Metoda __getitem__ pozwala interpreterowi Pythona na pobranie pojedynczego elementu z kolekcji.
Nie wszystkie elementy są subskrybowane. Na przykład metody nie są. Dzieje się tak, ponieważ nie implementują metody __getitem__. Oznacza to, że nie możesz użyć składni w nawiasach, aby uzyskać dostęp do elementów metody lub wywołać metodę.
Rozważ następujący fragment kodu:
Ten kod zwraca „Edam”, ser na pozycji indeksu 0. Nie możesz użyć nawiasów kwadratowych do wywołania funkcji lub metody, ponieważ funkcje i metody nie są obiektami, które możesz subskrybować.
Przykładowy scenariusz
Tutaj tworzymy program, który przechowuje sery w obiektach. „Ser” — klasa, której używamy do zdefiniowania sera, będzie miała metodę, która pozwoli nam sprawdzić, czy ser pochodzi z określonego kraju pochodzenia.
Zacznij od zdefiniuj klasę dla naszych serów. Nazwijmy tę klasę Cheese: