logo

AttributeError Pythonissa

Mikä on virhe?

Ohjelmointikielissä, jos suoritamme jonkin koodin virheellisesti, ohjelman suoritus pysäytetään sanomalla ja tätä viestiä kutsutaan virheeksi tai poikkeukseksi. Ohjelmointikielessä on tietyntyyppisiä virheitä eri syistä johtuen. Jotkut niistä ovat seuraavat:

AssertionError:

Tämän tyyppinen virhe ilmenee, kun väiteehdot tai lauseet epäonnistuvat koodissa.

Tuontivirhe:

Tämä virhe ilmenee, kun tuomme jonkin moduulin tiedostoon ja jos kyseistä moduulia ei ole olemassa.

IndexError:

teelusikallisen kokoinen

Se tapahtuu, kun minkä tahansa sekvenssin indeksi on alueen ulkopuolella.

KeyError:

Tämä virhe ilmenee Pythonissa, kun emme löydä sanakirjasta avainta.

Nimivirhe:

Tämä virhe voi tapahtua, kun emme löydä muuttujaa paikallisessa tai globaalissa laajuudessa.

Suorituksenaikainen virhe:

Tämä virhe tulee esiin, kun virhettä ei voida luokitella mihinkään tyyppiin.

Sisennysvirhe:

Kun käytämme väärää sisennystä Python-koodissa, tapahtuu IndentationError.

Järjestelmävirhe:

Jos tapahtuu sisäinen virhe, tulkki nostaa SystemError-ilmoituksen.

UnicodeError:

Kun Unicodeen liittyy koodaus- tai dekoodausvirhe, UnicodeError nostetaan esiin.

ValueError:

Kun funktiossa välitämme oikean argumentin tietotyypin mukaan, mutta arvo ei ole oikea, niin tapahtuneen virheen nimi on ValueError.

ZeroDivisionError:

Kuten tiedämme, matematiikassa emme voi jakaa mitään lukua nollalla, koska tulos on taipumus äärettömään. Joten jos olemme kirjoittaneet jonkin lausunnon koskien jakamista nollalla tai modulo nollalla, esiin tulee virhe ZeroDivisionError.

EOFError:

Kun käytämme input()-funktiota saadaksemme syötteen tiedostosta ja saavutamme tiedoston loppuun, tämä virhe nostetaan osoittamaan, että olemme saavuttaneet tiedoston loppuun, ja nyt emme voi ottaa mitään syöte tiedostosta.

Tämä artikkeli on omistettu pääasiassa AttributeErrorille.

Mikä on AttributeError?

Tämä virhe ilmenee ohjelmassa, kun määritteen määrityksessä on ehdollistamisvirhe. Jos esimerkiksi annamme kokonaislukumuuttujalle arvon ja jos yritämme käyttää mitä tahansa merkkijonofunktiota kyseisestä muuttujasta, se nostaa AttributeError-arvon.

Pythonin AttributeErrorin syyn voi ymmärtää seuraavien esimerkkien avulla:

Esimerkki 1:

Kun käytämme funktiota toiselle tietotyypille, mikä ei ole mahdollista

 a=15 a.append('javatpoint') 

Lähtö:

AttributeError Pythonissa

Selitys:

Yllä olevassa koodissa meillä on yksi kokonaislukumuuttuja, ja olemme alustaneet sen arvolla 15. Jos nyt käytämme append-funktiota muuttujassa a, se antaa AttributeError-attribuutin, joka sanoo, että append-määritettä ei ole. kokonaislukutietotyypissä.

Esimerkki2:

Attribuutin väärässä kirjoitusasussa saattaa olla AttributeError.

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

Lähtö:

AttributeError Pythonissa

Selitys:

Yllä olevassa koodissa meillä on string-attribuutti, ja käytämme fst-attribuuttia, joten tulee AttributeError, että tätä attribuuttia ei ole olemassa muuttujalle.

Esimerkki3:

Voimme saada AttributeError, jos yritämme tehdä väärän viittauksen mille tahansa luokkamuuttujalle.

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

Lähtö:

AttributeError Pythonissa

Selitys:

Yllä olevassa koodissa meillä on luokka, ja siinä on muuttuja nimeltä var1. Luomme luokan objektin ja vahingossa viittaamme sen luokan väärään muuttujaan var2, jota ei edes ole olemassa, joten AttributeError tulee varmasti olemaan.

Ratkaisu virheen tai poikkeuksen korjaamiseen:

Pythonissa tai missä tahansa ohjelmointikielessä voimme käyttää poikkeus- tai virheenkäsittelyä try and paitsi -käskyjen avulla.

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

Lähtö:

AttributeError Pythonissa

Selitys:

Yllä olevassa koodissa meillä on luokka ja muuttuja nimeltä var1. Try-lauseessa yritämme viitata muuttujiin var1 ja var2. Pystymme poistamaan viittauksen var1:een ja tulostamme sen lausekkeen, mutta saamme AttributeError-koodin var2:een viittaamisesta. Joten ohjelma menee paitsi lohkoon, ja tulostamme lauseen, joka on kirjoitettu vain virhetilanteelle.