_int_ L'objet n'est pas scriptable

_int_ L'objet n'est pas scriptable
Un objet sous-inscriptible dans Python fait référence aux objets qui agissent comme des conteneurs. Ou, l'objet contient d'autres objets. Vous pouvez utiliser une notation d'indexation pour accéder aux éléments spécifiques de l'objet. Un objet est indiqué s'il implémente les méthodes __getItem __ () ou __class_getItem __ ().

Cet article a discuté de l'erreur non subscripable de Python, de ce qui les cause et de la façon de le réparer.

Ce qui cause l'objet 'in' n'est pas une erreur sous-inscriptive?

Cette erreur est causée lorsque vous traitez un type entier comme un objet abonné dans Python.

Cela signifie que vous essayez d'accéder aux éléments d'un type int qui n'est pas pris en charge.

Un exemple est comme indiqué:

I = 1000
imprimer (i [0])

Dans ce cas, nous tentons d'accéder à un élément d'un type entier qui n'est pas pris en charge pour un objet int n'est pas indiqué.

L'exécution du code ci-dessus doit renvoyer une erreur comme indiqué:

$ python sous-inscriptible.py
Traceback (dernier appel dernier):
Fichier ".py ", ligne 2, dans
imprimer (i [0])
L'objet TypeError: 'int' n'est pas sous-estimé

Cela nous empêche d'utiliser des notations d'indexation pour accéder aux éléments d'un type int.

Dans Python, les objets sous-inscriptibles incluent:

  1. chaîne
  2. tuple
  3. liste
  4. diction
  5. Toute classe qui implémente __getItem __ ()

Comment corriger TypeError: l'objet 'int' n'est pas une erreur sous-inscriptive

Pour corriger ce type d'erreur, vous devez éviter d'utiliser la notation d'indexation sur un type non pris en charge.

Cependant, si vous avez besoin d'accéder aux éléments d'un objet, vous pouvez le convertir en un objet indiqué.

Par exemple, dans notre exemple précédent, nous pouvons convertir l'entier en un type de chaîne comme son indicable.

Considérez l'illustration ci-dessous:

I = 1000
i = str (i)
imprimer (i [0])

Dans ce cas, le code doit fonctionner et renvoyer l'élément à l'index 0 comme indiqué:

$ python sous-inscriptible.py
1

Bonus: implémentation __getItem __ () dans votre classe

Dans certains cas, vous devrez peut-être que votre objet soit indiqué. Par conséquent, vous devez implémenter la méthode __getItem__ dans votre classe.

L'exemple ci-dessous montre comment vous créez un objet indicable simple.

Classe MyClass:
def __getItem __ (self, key):
clé de retour
new_object = myclass ()
print (new_object [0])

Dans l'exemple ci-dessus, nous commençons par créer une classe simple qui implémente la méthode __getItem__.

La fonction prendra simplement la clé et se retournera. Par exemple, l'exécution du code ci-dessus doit revenir:

$ python sous-inscriptible.py
0

Vous pouvez utiliser cette notation pour obtenir un élément spécifique de votre objet.

Un exemple est comme indiqué:

voiture de classe:
def __init __ (self, modèle):
soi.modèle = modèle
def __getItem __ (self, key):
se retourner.modèle [clé]
y = car ('Honda Civic')
imprimer (y [0: 5])

Dans ce cas, la méthode vous permet de récupérer des éléments à un index spécifique. L'exécution du code ci-dessus doit retourner:

$ python sous-inscriptible.py
Honda

Vous pouvez en savoir plus sur le Python __getItem__ dans la ressource ci-dessous:

https: // docs.python.org / 3 / référence / datamodel.objet HTML #.__obtenir l'article__

Conclusion

Cet article a discuté de l'erreur non subscripable de Python, de ce qui les cause et de la façon de le réparer.