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 = 1000Dans 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.pyCela 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:
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 = 1000Dans ce cas, le code doit fonctionner et renvoyer l'élément à l'index 0 comme indiqué:
$ python sous-inscriptible.pyBonus: 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: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.pyVous pouvez utiliser cette notation pour obtenir un élément spécifique de votre objet.
Un exemple est comme indiqué:
voiture de classe: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.pyVous 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.