_int_ objektet er ikke skriptbart

_int_ objektet er ikke skriptbart
Et abonnementbart objekt i Python refererer til objekter som fungerer som containere. Eller, objektet inneholder andre objekter. Du kan bruke en indekseringsnotasjon for å få tilgang til spesifikke elementer i objektet. Et objekt er abonnementbart hvis det implementerer __getItem __ () eller __class_getItem __ () -metodene.

Denne artikkelen diskuterte Python -utskrivbar feil, hva som forårsaker den, og hvordan du fikser den.

Hva som forårsaker 'i' objektet er ikke abonnementbar feil?

Denne feilen er forårsaket når du behandler en heltalltype som et abonnementsobjekt i Python.

Dette betyr at du prøver å få tilgang til elementer av en INT -type som ikke støttes.

Et eksempel er som vist:

i = 1000
trykk (i [0])

I dette tilfellet prøver vi å få tilgang til et element av en heltallstype som ikke støttes for et INT -objekt, er ikke abonnementbart.

Å kjøre koden over skal returnere en feil som vist:

$ python abonnement.py
Traceback (siste samtale sist):
Fil "abonnement.py ", linje 2, i
trykk (i [0])
Typeerror: 'int' objekt er ikke abonnementbart

Dette forhindrer oss i å bruke indekseringsnotasjoner for å få tilgang til elementer av en INT -type.

I Python inkluderer abonnementbare objekter:

  1. streng
  2. tuple
  3. liste
  4. Dict
  5. Enhver klasse som implementerer __getItem __ ()

Hvordan fikse typeerror: 'int' objekt er ikke abonnementbar feil

For å fikse denne typen feil, bør du unngå å bruke indekseringsnotasjon på en ikke -støttet type.

Imidlertid, hvis du trenger å få tilgang til elementer i et objekt, kan du konvertere det til et abonnementbart objekt.

I vårt forrige eksempel kan vi for eksempel konvertere heltallet til en strengtype som abonnementsbar.

Tenk på illustrasjonen vist nedenfor:

i = 1000
i = str (i)
trykk (i [0])

I dette tilfellet skal koden fungere og returnere elementet på indeks 0 som vist:

$ python abonnement.py
1

Bonus: Implementering __getItem __ () i klassen din

I noen tilfeller kan det hende du trenger at objektet ditt kan være abonnement. Derfor må du implementere __getItem__ -metoden i klassen din.

Eksemplet nedenfor viser hvordan du skaper et enkelt abonnementsobjekt.

Klasse MyClass:
def __getItem __ (selv, nøkkel):
Returnøkkel
new_object = myclass ()
print (new_object [0])

I eksemplet over starter vi med å lage en enkel klasse som implementerer __getItem__ -metoden.

Funksjonen vil ganske enkelt ta nøkkelen og returnere seg selv. Å kjøre koden ovenfor skal for eksempel returnere:

$ python abonnement.py
0

Du kan bruke denne notasjonen for å få et spesifikt element i objektet ditt.

Et eksempel er som vist:

Klassebil:
def __init __ (selv, modell):
selv-.modell = modell
def __getItem __ (selv, nøkkel):
Returnerer selv.modell [nøkkel]
y = bil ('honda civic')
Print (y [0: 5])

I dette tilfellet lar metoden deg hente elementer i en bestemt indeks. Å kjøre koden ovenfor skal returnere:

$ python abonnement.py
Honda

Du kan lære mer om Python __getItem__ i ressursen nedenfor:

https: // dokumenter.Python.org/3/referanse/datamodel.HTML#objekt.__getItem__

Konklusjon

Denne artikkelen diskuterte Python -utskrivbar feil, hva som forårsaker den, og hvordan du fikser den.