W tym artykule omówiono błąd bez subskrypcji Pythona, co go powoduje i jak go naprawić.
To, co powoduje obiekt „w”, nie jest błędem niegodnym?
Ten błąd jest spowodowany traktowaniem typu liczb całkowitych jako obiektu subskrybowanego w Pythonie.
Oznacza to, że próbujesz uzyskać dostęp do elementów typu INT, który nie jest obsługiwany.
Przykładem jest jak pokazano:
i = 1000W takim przypadku staramy się uzyskać dostęp do elementu typu liczb całkowitych, który nie jest obsługiwany dla obiektu INT.
Uruchomienie powyższego kodu powinno zwrócić błąd, jak pokazano:
$ Python Unbiscribryble.pyTo uniemożliwia nam korzystanie z notacji indeksowania w celu uzyskania dostępu do elementów typu int.
W Python obiekty nie dolegliwe do pomocy obejmują:
Jak naprawić typeerror: obiekt „int” nie jest błędem niewolnikiem
Aby naprawić ten rodzaj błędu, należy unikać używania indeksowania notacji w nieobsługiwanym typie.
Jeśli jednak potrzebujesz dostępu do elementów obiektu, możesz go przekonwertować na obiekt niewolniczy.
Na przykład w naszym poprzednim przykładzie możemy przekonwertować liczbę całkowitą na typ ciągu jako jego nie do użytku.
Rozważ ilustrację pokazaną poniżej:
i = 1000W takim przypadku kod powinien działać i zwrócić element w indeksie 0, jak pokazano:
$ Python Unbiscribryble.pyBonus: wdrażanie __getItem __ () w swojej klasie
W niektórych przypadkach możesz potrzebować, aby Twój obiekt był ubezpieczony. Dlatego musisz zaimplementować metodę __getItem__ w swojej klasie.
Poniższy przykład pokazuje, w jaki sposób utworzyć prosty obiekt niedziałkowy.
klasa myclass:W powyższym przykładzie zaczynamy od utworzenia prostej klasy, która implementuje metodę __getItem__.
Funkcja po prostu weźmie klucz i zwróci się. Na przykład uruchomienie powyższego kodu powinno zwrócić:
$ Python Unbiscribryble.pyMożesz użyć tej notacji, aby uzyskać określony element swojego obiektu.
Przykładem jest jak pokazano:
Samochód klasowy:W takim przypadku metoda pozwala pobierać elementy w określonym indeksie. Uruchomienie powyższego kodu powinno zwrócić:
$ Python Unbiscribryble.pyMożesz dowiedzieć się więcej o Python __getItem__ w poniższym zasobie:
https: // dokumenty.pyton.org/3/reference/dataModel.HTML#Obiekt.__Zdobądź przedmiot__
Wniosek
W tym artykule omówiono błąd bez subskrypcji Pythona, co go powoduje i jak go naprawić.