logo

AttributeError u Pythonu

Što je pogreška?

U programskim jezicima, ako neki kod izvršimo na pogrešan način, izvršavanje programa će biti zaustavljeno porukom i ta se poruka naziva pogreška ili iznimka. Postoje određene vrste pogrešaka u programskom jeziku zbog različitih razloga. Neki od njih su sljedeći:

AssertionError:

Ova vrsta pogreške pojavljuje se kada uvjeti tvrdnji ili izjave ne uspiju u kodu.

ImportError:

Ova greška se javlja kada uvozimo neki modul u datoteku i ako taj modul ne postoji.

IndexError:

To se događa kada je indeks bilo koje sekvence izvan raspona.

KeyError:

Ova se pogreška pojavljuje u Pythonu kada ne možemo pronaći nijedan ključ u rječniku.

NameError:

Ova se pogreška može pojaviti kada ne pronađemo nijednu varijablu u lokalnom ili globalnom opsegu.

RuntimeError:

Ova će se pogreška pojaviti kada se pogreška ne može kategorizirati ni u jednu vrstu.

IndentationError:

Kada koristimo pogrešno uvlačenje u Python kodu, tada će se pojaviti IndentationError.

SystemError:

Kada postoji interna pogreška, prevoditelj će pokrenuti SystemError.

UnicodeError:

Kada postoji pogreška kodiranja ili dekodiranja povezana s Unicodeom i UnicodeError će se pojaviti.

ValueError:

Kada u funkciji proslijeđujemo točan argument prema tipu podataka, ali vrijednost nije ispravna, tada se pogreška koja se dogodila naziva ValueError.

sunčano diol doba

ZeroDivisionError:

Kao što znamo, u matematici nijedan broj ne možemo podijeliti s nulom jer rezultat teži beskonačnosti. Dakle, ako smo napisali bilo kakvu izjavu u vezi dijeljenja s nulom ili modulo s nulom, tada će prikazana pogreška biti ZeroDivisionError.

EOFError:

Kada upotrijebimo funkciju input() za dobivanje unosa iz datoteke i dođemo do kraja datoteke, tada će se pojaviti ova pogreška da bi se pokazalo da smo došli do kraja datoteke i sada ne možemo preuzeti ništa unos iz datoteke.

Ovaj je članak uglavnom posvećen AttributeError.

Što je AttributeError?

Ova se pogreška pojavljuje u programu kada postoji pogreška uvjetovanja u dodjeli atributa. Na primjer, ako cjelobrojnoj varijabli dodijelimo neku vrijednost i ako pokušamo upotrijebiti bilo koju funkciju niza iz te varijable, tada će to izazvati AttributeError.

Možemo razumjeti razlog za AttributeError u Pythonu pomoću sljedećih primjera:

Primjer 1:

Kada primijenimo funkciju na drugu vrstu podataka što nije moguće

 a=15 a.append('javatpoint') 

Izlaz:

AttributeError u Pythonu

Obrazloženje:

U gornjem kodu imamo jednu cjelobrojnu varijablu i inicijalizirali smo je s vrijednošću 15. Sada, ako koristimo funkciju dodavanja na varijabli a, tada će dati AttributeError, što kaže da ne postoji atribut kao dodatak u integer tipu podataka.

Primjer2:

Postoje šanse za AttributeError u krivom pravopisu atributa.

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

Izlaz:

AttributeError u Pythonu

Obrazloženje:

U gornjem kodu imamo atribut niza i primjenjujemo atribut fst, tako da će biti AttributeError da ovaj atribut ne postoji za varijablu.

Primjer3:

Možemo dobiti AttributeError ako pokušamo napraviti krivu referencu za bilo koju varijablu klase.

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

Izlaz:

AttributeError u Pythonu

Obrazloženje:

U gornjem kodu imamo klasu, a tu je i varijabla imena var1. Kreiramo objekt klase i greškom referenciramo pogrešnu varijablu var2 te klase koja čak i ne postoji, tako da će sigurno biti AttributeError.

Rješenje za rješavanje pogreške ili iznimke:

U Pythonu ili u bilo kojem programskom jeziku, možemo koristiti rukovanje iznimkama ili pogreškama pomoću naredbi try i osim.

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

Izlaz:

AttributeError u Pythonu

Obrazloženje:

U gornjem kodu imamo klasu i varijablu pod nazivom var1. U naredbi try pokušavamo referencirati var1 i var2. Moći ćemo dereferencirati var1 i ispisat ćemo izjavu za to, ali ćemo dobiti AttributeError za referenciranje var2. Dakle, program će ići u blok osim, a mi ćemo ispisati izjavu koja je napisana samo za stanje greške.