logo

AttributeError в Python

Какво е грешка?

В езиците за програмиране, ако изпълним някакъв код по невалиден начин, изпълнението на програмата ще бъде спряно със съобщение и това съобщение се нарича грешка или изключение. Има определени видове грешки в езика за програмиране поради различни причини. Някои от тях са както следва:

AssertionError:

Този тип грешка възниква, когато условия на твърдение или изрази се провалят в кода.

ImportError:

Тази грешка възниква, когато импортираме някакъв модул във файла и ако този модул не съществува.

IndexError:

Това се случва, когато за която и да е последователност нейният индекс е извън диапазона.

KeyError:

Тази грешка се появява в Python, когато не можем да намерим ключ в речника.

образование на касиди хътчинсън

ИмеError:

Тази грешка може да възникне, когато не намерим променлива в локалния или глобалния обхват.

Грешка по време на изпълнение:

Тази грешка ще бъде повдигната, когато грешката не може да бъде категоризирана в никакъв тип.

IndentationError:

Когато използваме грешен отстъп в кода на Python, тогава ще възникне IndentationError.

Системна грешка:

Когато има вътрешна грешка, тогава SystemError ще бъде повдигнат от интерпретатора.

UnicodeError:

Когато има грешка при кодиране или декодиране, свързана с Unicode и UnicodeError, ще бъдат повдигнати.

ValueError:

Когато във функция предаваме правилния аргумент според типа данни, но стойността не е правилна, тогава възникналата грешка се нарича ValueError.

ZeroDivisionError:

Както знаем, в математиката не можем да разделим нито едно число на нула, защото резултатът клони към безкрайност. Така че, ако сме написали някакво изявление относно деление на нула или модул по нула, тогава повдигнатата грешка ще бъде ZeroDivisionError.

удебеляване в css

EOFError:

Когато използваме функцията input(), за да получим входните данни от файл и стигнем до края на файла, тогава тази грешка ще бъде повдигната, за да покаже, че сме достигнали края на файла и сега не можем да вземем никакви вход от файла.

Тази статия е посветена главно на AttributeError.

Какво е AttributeError?

Тази грешка възниква в програмата, когато има грешка при кондициониране в присвояването на атрибут. Например, ако присвоим на целочислена променлива някаква стойност и ако се опитаме да използваме която и да е низова функция от тази променлива, тогава това ще предизвика AttributeError.

Можем да разберем причината за AttributeError в Python чрез следните примери:

Пример 1:

Когато прилагаме функция върху различен тип данни, което не е възможно

 a=15 a.append('javatpoint') 

Изход:

AttributeError в Python

Обяснение:

В горния код имаме една целочислена променлива и сме я инициализирали със стойност 15. Сега, ако използваме функцията за добавяне на променливата a, тогава тя ще даде AttributeError, който казва, че няма атрибут като append в целочислен тип данни.

Пример2:

Има шансове за AttributeError при неправилно изписване на атрибута.

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

Изход:

AttributeError в Python

Обяснение:

В горния код имаме атрибут string и прилагаме атрибута fst, така че ще има AttributeError, че този атрибут не съществува за променливата.

Пример3:

Можем да получим AttributeError, ако се опитаме да направим грешна препратка за която и да е променлива на класа.

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

Изход:

AttributeError в Python

Обяснение:

В горния код имаме клас и има променлива с име var1. Създаваме обекта на класа и по погрешка препращаме към грешната променлива var2 на този клас, която дори не съществува, така че определено ще има AttributeError.

Решението за справяне с грешката или изключението:

В Python или във всеки език за програмиране можем да използваме обработка на изключения или грешки с помощта на оператори try и osim.

Пример 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') 

Изход:

AttributeError в Python

Обяснение:

В горния код имаме клас и променлива с име var1. В оператора try се опитваме да препратим към var1 и var2. Ще можем да дереферираме var1 и ще отпечатаме оператора за него, но ще получим AttributeError за рефериране на var2. И така, програмата ще влезе в блок освен и ще отпечатаме израза, който е написан само за условието за грешка.