Metody listy klas JavaScript

| | | | | | | | | | | | | | | |

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:

Nasza klasa zawiera dwie metody. Pierwsza metoda definiuje strukturę obiektu Cheese. drugi pozwala na sprawdzenie, czy kraj pochodzenia sera jest równy określonej wartości.

W takim razie , utwórzmy obiekt z naszej klasy Cheese:

Zmienna "edam" jest obiektem. Nazwa związana z serem to Edam, a jego krajem pochodzenia jest Holandia.

Następnie nazywamy naszą metodę get_country ():

Ten kod wykonuje get_country() metody klasy Cheese. get_country ( ) sprawdza, czy wartość „origin” w naszym obiekcie „edam” jest równa „Niemcy”.

Uruchom nasz kod i zobacz, co się dzieje:

Wystąpił błąd w naszym kodzie.

Przeanalizujmy wiersz kod, który debuger Pythona zidentyfikował jako niepoprawny:

W tym wierszu kodu używamy nawiasów kwadratowych do wywołania metody get_country(). Nie jest to akceptowalna składnia, ponieważ nawiasy kwadratowe służą do uzyskiwania dostępu do elementów listy. Ponieważ funkcje i obiekty nie są subskrybowane, nie możemy używać nawiasów kwadratowych do ich wywoływania.

Aby poprawić ten błąd, potrzebujemy aby zastąpić nawiasy klamrami:

Uruchommy nasz kod i zobaczmy, co się stanie:

Nasz kod działa poprawnie. Spróbujmy sprawdzić, czy Edam pochodzi z „Holandii”, aby upewnić się, że nasza funkcja działa we wszystkich przypadkach, niezależnie od tego, czy podana przez nas wartość jest taka sama jak kraj pochodzenia sera:

Nasz kod zwraca:

Nasz kod działa, jeśli określona przez nas wartość jest równa krajowi pochodzenia sera.

Podsumowanie

Błąd „TypeError: „metoda” nie podlega subskrypcji” jest generowany podczas używania nawiasów kwadratowych do wywołania metody w klasie. Aby rozwiązać ten błąd, pamiętaj, aby wywołać tylko metody klasy używające nawiasów klamrowych po nazwie metody, którą chcesz wywołać.

Jesteś teraz gotowy do rozwiązania tego powszechnego błędu Pythona jako profesjonalny programista !