logo

AttributeError programmā Python

Kas ir kļūda?

Programmēšanas valodās, ja mēs izpildām kādu kodu nederīgā veidā, programmas izpilde tiks apturēta ar ziņojumu un šo ziņojumu sauc par kļūdu vai izņēmumu. Programmēšanas valodā dažādu iemeslu dēļ ir noteikta veida kļūdas. Daži no tiem ir šādi:

AssertionError:

Šāda veida kļūda rodas, ja kodā neizdodas apgalvojuma nosacījumi vai paziņojumi.

Importēšanas kļūda:

Šī kļūda rodas, importējot kādu moduli failā un ja šis modulis neeksistē.

Indeksa kļūda:

Tas notiek, ja jebkurai secībai tās indekss ir ārpus diapazona.

Atslēgas kļūda:

Šī kļūda tiek parādīta Python, ja vārdnīcā nevar atrast nevienu atslēgu.

NameError:

Šī kļūda var rasties, ja mēs neatrodam nevienu mainīgo lokālajā vai globālajā tvērumā.

Runtime Error:

Šī kļūda tiks parādīta, ja kļūdu nevar klasificēt neviena veida kategorijā.

Atkāpes kļūda:

Ja Python kodā izmantosim nepareizu atkāpi, parādīsies IndentationError.

Sistēmas kļūda:

Ja rodas iekšēja kļūda, tulks aktivizēs SystemError.

UnicodeError:

Ja rodas kodēšanas vai dekodēšanas kļūda, kas saistīta ar Unicode, tiks parādīts UnicodeError.

ValueError:

Funkcijā mēs nododam pareizo argumentu atbilstoši datu tipam, bet vērtība nav pareiza, tad radušos kļūdu sauc par ValueError.

mysql mainīt kolonnas veidu

ZeroDivision Error:

Kā zināms, matemātikā nevienu skaitli nevar dalīt ar nulli, jo rezultāts mēdz būt bezgalībā. Tātad, ja esam uzrakstījuši kādu paziņojumu par dalīšanu ar nulli vai moduli ar nulli, tad radusies kļūda būs ZeroDivisionError.

EOFError:

Ja mēs izmantojam funkciju input(), lai iegūtu ievadi no faila, un mēs sasniedzam faila beigas, šī kļūda tiks parādīta, lai norādītu, ka esam sasnieguši faila beigas, un tagad mēs nevaram ņemt ievade no faila.

Šis raksts galvenokārt ir veltīts AttributeError.

Kas ir AttributeError?

Šī kļūda programmā rodas, ja atribūta piešķiršanā ir noregulēšanas kļūme. Piemēram, ja mēs piešķiram veselam skaitļa mainīgajam kādu vērtību un mēģināsim izmantot kādu no šī mainīgā virknes funkciju, tas paaugstinās AttributeError.

Mēs varam saprast AttributeError iemeslu Python, izmantojot šādus piemērus:

1. piemērs:

Ja mēs izmantojam funkciju citam datu tipam, kas nav iespējams

 a=15 a.append('javatpoint') 

Izvade:

AttributeError programmā Python

Paskaidrojums:

Iepriekš minētajā kodā mums ir viens vesels skaitļa mainīgais, un mēs to esam inicializējuši ar vērtību 15. Tagad, ja mainīgajam a izmantosim pievienošanas funkciju, tas dos AttributeError, kas saka, ka nav atribūta kā pievienot. vesela skaitļa datu tipā.

2. piemērs:

Nepareizas atribūta pareizrakstības gadījumā pastāv AttributeError iespēja.

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

Izvade:

AttributeError programmā Python

Paskaidrojums:

Iepriekš minētajā kodā mums ir virknes atribūts, un mēs izmantojam fst atribūtu, tāpēc tiks parādīts AttributeError, ka šis atribūts mainīgajam nepastāv.

3. piemērs:

Mēs varam iegūt AttributeError, ja mēģinām izveidot nepareizu atsauci uz jebkuru klases mainīgo.

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

Izvade:

AttributeError programmā Python

Paskaidrojums:

Iepriekš minētajā kodā mums ir klase, un ir mainīgais ar nosaukumu var1. Mēs izveidojam klases objektu un kļūdas dēļ atsaucamies uz nepareizo šīs klases mainīgo var2, kura pat neeksistē, tāpēc noteikti būs AttributeError.

Risinājums kļūdas vai izņēmuma novēršanai:

Python vai jebkurā programmēšanas valodā mēs varam izmantot izņēmumu vai kļūdu apstrādi, izmantojot izmēģināšanas un izņemšanas paziņojumus.

4. piemērs:

 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') 

Izvade:

AttributeError programmā Python

Paskaidrojums:

Iepriekš minētajā kodā mums ir klase un mainīgais ar nosaukumu var1. Izmēģinājuma priekšrakstā mēs cenšamies atsaukties uz var1 un var2. Mēs varēsim noņemt atsauci uz var1, un mēs izdrukāsim tā paziņojumu, bet mēs iegūsim AttributeError par atsauci uz var2. Tātad programma ieies, izņemot bloku, un mēs izdrukāsim paziņojumu, kas ir rakstīts tikai kļūdas nosacījumam.