Dans chaque langage de programmation, si nous développons de nouveaux programmes, il y a de fortes chances d'obtenir des erreurs ou des exceptions. Ces erreurs entraînent la non-exécution du programme. L'une des erreurs qui se produit le plus souvent en Python est AttributeError. AttributeError peut être défini comme une erreur générée lorsqu'une référence d'attribut ou une affectation échoue.
Par exemple, si nous prenons une variable x, on nous attribue une valeur de 10. Dans ce processus, supposons que nous souhaitions ajouter une autre valeur à cette variable. Ce n'est pas possible. Étant donné que la variable est de type entier, elle ne prend pas en charge la méthode append. Ainsi, dans ce type de problème, nous obtenons une erreur appelée AttributeError. Supposons que si la variable est de type liste, elle prend en charge la méthode append. Ensuite, il n'y a pas de problème et il n'y a pas d'erreur d'attribut.
Note: Les erreurs d'attribut en Python sont généralement générées lorsqu'une référence d'attribut non valide est effectuée.
Il y a quelques chances d'obtenir AttributeError.
Exemple 1:
Python3
# Python program to demonstrate> # AttributeError> X>=> 10> # Raises an AttributeError> X.append(>6>)> |
>
>
Sortir:
Traceback (most recent call last): File '/home/46576cfdd7cb1db75480a8653e2115cc.py', line 5, in X.append(6) AttributeError: 'int' object has no attribute 'append'>
Exemple 2 : Parfois, toute variation d’orthographe entraînera une erreur d’attribut car Python est un langage sensible à la casse.
Python3
np.log
# Python program to demonstrate> # AttributeError> # Raises an AttributeError as there is no> # method as fst for strings> string>=> 'The famous website is { }'>.fst(>'geeksforgeeks'>)> print>(string)> |
>
>
Sortir:
Traceback (most recent call last): File '/home/2078367df38257e2ec3aead22841c153.py', line 3, in string = 'The famous website is { }'.fst('geeksforgeeks') AttributeError: 'str' object has no attribute 'fst'> Exemple 3 : AttributeError peut également être déclenché pour une classe définie par l'utilisateur lorsque l'utilisateur tente de créer une référence d'attribut non valide.
Python3
enum tostring java
# Python program to demonstrate> # AttributeError> class> Geeks():> > >def> __init__(>self>):> >self>.a>=> 'techcodeview.com'> > # Driver's code> obj>=> Geeks()> print>(obj.a)> # Raises an AttributeError as there> # is no attribute b> print>(obj.b)> |
>
>
Sortir:
techcodeview.com>
Erreur:
Traceback (most recent call last): File '/home/373989a62f52a8b91cb2d3300f411083.py', line 17, in print(obj.b) AttributeError: 'Geeks' object has no attribute 'b'>
Exemple 4 : AttributeError peut également être déclenché pour une classe définie par l'utilisateur lorsque l'utilisateur ne parvient pas à ajouter des tabulations ou des espaces entre ses lignes de code.
Python3
#This is a dictionary parsing code written by Amit Jadhav> #Because of an Indentation Error you will experience Attribute Error> class> dict_parsing:> > >def> __init__(>self>,a):> >self>.a>=> a> > >def> getkeys(>self>):> >if> self>.notdict():> >return> list>(>self>.a.keys())> > >def> getvalues(>self>):> >if> self>.notdict():> >return> list>(>self>.a.values())> > >def> notdict(>self>):> >if> type>(>self>.a) !>=> dict>:> >raise> Exception(>self>,a,>'not a dictionary'>)> >return> 1> > >def> userinput(>self>):> >self>.a>=> eval>(>input>())> >print>(>self>.a,>type>(>self>.a))> >print>(>self>.getykeys())> >print>(>self>.getvalyes())> > >def> insertion(>self>,k,v):> >self>.a[k]>=>v> > d>=> dict_parsing({>'k1'>:>'amit'>,>'k2'>:[>1>,>2>,>3>,>4>,>5>]})> d.getkeys()> |
>
>
Sortir:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) in ---->1 d.getkeys() AttributeError : l'objet 'dict_parsing' n'a pas d'attribut 'getkeys'>
Erreur:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) in ---->1 d.getkeys() AttributeError : l'objet 'dict_parsing' n'a pas d'attribut 'getkeys'>
Solution pour l'erreur d'attribut
Les erreurs et les exceptions en Python peuvent être gérées à l'aide de la gestion des exceptions, c'est-à-dire en utilisant try et except en Python.
Exemple: Considérez l'exemple de classe ci-dessus, nous voulons faire autre chose plutôt que d'imprimer le traçage chaque fois qu'une AttributeError est levée.
Python3
# Python program to demonstrate> # AttributeError> class> Geeks():> > >def> __init__(>self>):> >self>.a>=> 'techcodeview.com'> # Driver's code> obj>=> Geeks()> # Try and except statement for> # Exception handling> try>:> >print>(obj.a)> > ># Raises an AttributeError> >print>(obj.b)> > # Prints the below statement> # whenever an AttributeError is> # raised> except> AttributeError:> >print>(>'There is no such attribute'>)> |
>
remplacer tout Java
>
Sortir:
techcodeview.com There is no such attribute>
Note: Pour en savoir plus sur la gestion des exceptions, cliquez ici.