logo

AttributeError a Python

Què és un error?

En llenguatges de programació, si executem algun codi de manera no vàlida, l'execució del programa s'aturarà amb un missatge i aquest missatge s'anomena error o excepció. Hi ha certs tipus d'errors en un llenguatge de programació per diferents motius. Alguns d'ells són els següents:

AssertionError:

Aquest tipus d'error es produeix quan les condicions d'asserció o declaracions fallen en el codi.

Error d'importació:

Aquest error es produeix quan importem algun mòdul al fitxer i si aquest mòdul no existeix.

IndexError:

Es produeix quan, per a qualsevol seqüència, el seu índex està fora de l'interval.

KeyError:

Aquest error es genera a Python quan no trobem cap clau al diccionari.

NameError:

Aquest error es pot produir quan no trobem cap variable en l'àmbit local o global.

Error d'execució:

Aquest error es generarà quan l'error no es pugui classificar en cap tipus.

IndentationError:

Quan utilitzem el sagnat incorrecte al codi de Python, es produirà IndentationError.

Error del sistema:

Quan hi ha un error intern, l'intèrpret generarà SystemError.

UnicodeError:

Quan hi ha un error de codificació o descodificació relacionat amb Unicode, es generarà UnicodeError.

ValueError:

Quan estem en una funció, passem l'argument correcte segons el tipus de dades, però el valor no és correcte, aleshores l'error que s'ha produït s'anomena ValueError.

ZeroDivisionError:

Com sabem, en matemàtiques, no podem dividir cap nombre per zero perquè el resultat tendeix a l'infinit. Per tant, si hem escrit alguna declaració sobre la divisió per zero o mòdul per zero, l'error generat serà ZeroDivisionError.

EOFError:

Quan utilitzem la funció input() per obtenir l'entrada d'un fitxer, i arribem al final del fitxer, es generarà aquest error per indicar que hem arribat al final del fitxer i ara no podem agafar cap entrada del fitxer.

Aquest article està dedicat principalment a AttributeError.

Què és AttributeError?

Aquest error es produeix al programa quan hi ha un error de condicionament en l'assignació d'atributs. Per exemple, si assignem un valor a una variable entera i si intentem utilitzar qualsevol funció de cadena d'aquesta variable, llavors generarà l'AttributeError.

Podem entendre el motiu d'AttributeError a Python amb els exemples següents:

Exemple 1:

Quan apliquem una funció a un tipus de dades diferent que no és possible

 a=15 a.append('javatpoint') 

Sortida:

AttributeError a Python

Explicació:

Al codi anterior, tenim una variable entera, i l'hem inicialitzada amb el valor 15. Ara, si fem servir la funció append a la variable a, donarà l'AttributeError, que diu que no hi ha cap atribut com append. en el tipus de dades enter.

Exemple 2:

Hi ha possibilitats d'AttributeError en l'ortografia incorrecta de l'atribut.

 string = 'you will learn each coding tutorial from '.fst('Javatpoint') print(string) 

Sortida:

AttributeError a Python

Explicació:

Al codi anterior, tenim un atribut de cadena i apliquem l'atribut fst, de manera que hi haurà AttributeError que aquest atribut no existeix per a la variable.

Powershell comentari multilínia

Exemple 3:

Podem obtenir l'AttributeError si intentem fer una referència incorrecta per a qualsevol variable de classe.

 class Javatpoint(): def __init__(self): self.var1 = 'This is for JavatPoint' obj = Javatpoint() print(obj.var1) print(obj.var2) 

Sortida:

AttributeError a Python

Explicació:

Al codi anterior, tenim una classe i hi ha una variable anomenada var1. Creem l'objecte de la classe i, per error, fem referència a la variable var2 incorrecta d'aquesta classe que fins i tot no existeix, de manera que definitivament hi haurà un AttributeError.

La solució per abordar l'error o l'excepció:

En Python o en qualsevol llenguatge de programació, podem utilitzar el maneig d'excepcions o errors utilitzant sentències try i except.

Exemple 4:

 class Javatpoint(): def __init__(self): self.var1 = 'This is for javatpoint' obj = Javatpoint() try: print(obj.var1) print(obj.var2) except AttributeError: print('There is no such attribute') 

Sortida:

AttributeError a Python

Explicació:

Al codi anterior, tenim una classe i una variable anomenada var1. A la instrucció try, intentem fer referència a var1 i var2. Podrem desreferenciar la var1 i imprimirem la instrucció, però obtindrem l'AttributeError per fer referència a la var2. Per tant, el programa entrarà al bloc excepte i imprimirem la instrucció, que només s'escriu per a la condició d'error.