logo

AttributeError v Pythone

Čo je to chyba?

Ak v programovacích jazykoch vykonáme nejaký kód neplatným spôsobom, vykonávanie programu sa zastaví so správou a táto správa sa nazýva chyba alebo výnimka. V programovacom jazyku existujú určité typy chýb z rôznych dôvodov. Niektoré z nich sú nasledovné:

AssertionError:

Tento typ chyby sa vyskytuje, keď v kóde zlyhajú podmienky tvrdenia alebo príkazy.

ImportError:

Táto chyba sa vyskytuje, keď importujeme nejaký modul do súboru a tento modul neexistuje.

IndexError:

Vyskytuje sa vtedy, keď je index ktorejkoľvek sekvencie mimo rozsahu.

ako zreťaziť reťazce v jave

KeyError:

Táto chyba sa objaví v Pythone, keď nemôžeme nájsť žiadny kľúč v slovníku.

NameError:

Táto chyba sa môže vyskytnúť, keď nenájdeme žiadnu premennú v lokálnom alebo globálnom rozsahu.

RuntimeError:

Táto chyba sa zobrazí, keď chybu nemožno kategorizovať do žiadneho typu.

IndentationError:

Keď v kóde Pythonu použijeme nesprávne odsadenie, dôjde k chybe IndentationError.

Systémová chyba:

Ak dôjde k internej chybe, tlmočník vyvolá SystemError.

UnicodeError:

...v jave

Ak dôjde k chybe kódovania alebo dekódovania súvisiacej s Unicode, zobrazí sa chyba UnicodeError.

ValueError:

Keď vo funkcii odovzdáme správny argument podľa typu údajov, ale hodnota nie je správna, potom sa chyba, ktorá sa vyskytla, nazýva ValueError.

ZeroDivisionError:

Ako vieme, v matematike nemôžeme deliť žiadne číslo nulou, pretože výsledok má tendenciu k nekonečnu. Takže ak sme napísali nejaké vyhlásenie týkajúce sa delenia nulou alebo modulo nulou, potom bude vyvolaná chyba ZeroDivisionError.

EOFE chyba:

Keď použijeme funkciu input() na získanie vstupu zo súboru a dostaneme sa na koniec súboru, potom sa táto chyba zobrazí, čo znamená, že sme dosiahli koniec súboru a teraz nemôžeme prijať žiadne vstup zo súboru.

Tento článok je venovaný hlavne AttributeError.

Čo je AttributeError?

Táto chyba sa vyskytuje v programe, keď dôjde k zlyhaniu kondicionovania v priradení atribútu. Napríklad, ak priradíme celočíselnej premennej nejakú hodnotu a ak sa pokúsime použiť akúkoľvek reťazcovú funkciu z tejto premennej, potom to vyvolá AttributeError.

Dôvod AttributeError v Pythone môžeme pochopiť pomocou nasledujúcich príkladov:

Príklad 1:

Keď aplikujeme funkciu na iný typ údajov, čo nie je možné

 a=15 a.append('javatpoint') 

Výkon:

AttributeError v Pythone

Vysvetlenie:

príklad

Vo vyššie uvedenom kóde máme jednu celočíselnú premennú a inicializovali sme ju hodnotou 15. Ak teraz použijeme funkciu append na premennej a, potom nám poskytne AttributeError, ktorá hovorí, že neexistuje žiadny atribút ako append v dátovom type celé číslo.

Príklad2:

Existuje možnosť AttributeError v nesprávnom pravopise atribútu.

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

Výkon:

AttributeError v Pythone

Vysvetlenie:

Vo vyššie uvedenom kóde máme atribút reťazca a aplikujeme atribút fst, takže sa objaví chyba AttributeError, že tento atribút pre premennú neexistuje.

Príklad 3:

AttributeError môžeme získať, ak sa pokúsime urobiť nesprávny odkaz na akúkoľvek premennú triedy.

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

Výkon:

AttributeError v Pythone

Vysvetlenie:

Vo vyššie uvedenom kóde máme triedu a existuje premenná s názvom var1. Vytvoríme objekt triedy a omylom odkážeme na nesprávnu premennú var2 tejto triedy, ktorá dokonca neexistuje, takže určite bude AttributeError.

Riešenie na riešenie chyby alebo výnimky:

V Pythone alebo v ľubovoľnom programovacom jazyku môžeme použiť spracovanie výnimiek alebo chýb pomocou príkazov try a Mimo.

Príklad 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') 

Výkon:

spracovanie výnimiek v jazyku Java
AttributeError v Pythone

Vysvetlenie:

Vo vyššie uvedenom kóde máme triedu a premennú s názvom var1. V príkaze try sa snažíme odkázať na var1 a var2. Budeme môcť dereferencovať var1 a vytlačíme preň príkaz, ale dostaneme AttributeError pre odkazovanie na var2. Program teda prejde okrem bloku a vytlačíme výpis, ktorý je napísaný len pre chybový stav.