logo

AttributeError у Python

Що таке помилка?

У мовах програмування, якщо ми виконуємо якийсь код недійсним способом, виконання програми буде зупинено з повідомленням, і це повідомлення називається помилкою або винятком. Існують певні типи помилок у мові програмування через різні причини. Деякі з них такі:

AssertionError:

Цей тип помилки виникає, коли умови твердження або оператори не виконуються в коді.

ImportError:

Ця помилка виникає, коли ми імпортуємо якийсь модуль у файл і якщо цей модуль не існує.

IndexError:

Це відбувається, коли для будь-якої послідовності її індекс виходить за межі діапазону.

KeyError:

Ця помилка виникає в Python, коли ми не можемо знайти жодного ключа в словнику.

NameError:

Ця помилка може виникнути, коли ми не знаходимо жодної змінної в локальній чи глобальній області.

Помилка виконання:

Ця помилка виникатиме, якщо помилку не можна віднести до жодного типу.

коли починається q2

IndentationError:

Якщо ми використовуємо неправильний відступ у коді Python, виникне IndentationError.

Системна помилка:

Коли є внутрішня помилка, інтерпретатор викличе SystemError.

UnicodeError:

Коли виникає помилка кодування або декодування, пов’язана з Unicode, і UnicodeError буде викликано.

ValueError:

Якщо у функції ми передаємо правильний аргумент відповідно до типу даних, але значення не є правильним, тоді помилка, що сталася, називається ValueError.

ZeroDivisionError:

Як ми знаємо, в математиці ми не можемо ділити будь-яке число на нуль, тому що результат прагне до нескінченності. Отже, якщо ми написали будь-який оператор щодо ділення на нуль або за модулем на нуль, тоді виникне помилка ZeroDivisionError.

EOFError:

Коли ми використовуємо функцію input(), щоб отримати вхідні дані з файлу, і ми досягаємо кінця файлу, тоді ця помилка буде викликана, щоб вказати, що ми досягли кінця файлу, і тепер ми не можемо отримати будь-який введення з файлу.

Ця стаття в основному присвячена AttributeError.

Що таке AttributeError?

Ця помилка виникає в програмі, коли в призначенні атрибутів виникає помилка кондиціонування. Наприклад, якщо ми присвоїмо цілочисельній змінній деяке значення і спробуємо використати будь-яку рядкову функцію з цієї змінної, це викличе AttributeError.

Ми можемо зрозуміти причину AttributeError у Python на наступних прикладах:

приклад 1:

Коли ми застосовуємо функцію до іншого типу даних, що неможливо

 a=15 a.append('javatpoint') 

Вихід:

AttributeError у Python

Пояснення:

У наведеному вище коді ми маємо одну цілочисельну змінну, і ми ініціалізували її значенням 15. Тепер, якщо ми використовуємо функцію append для змінної 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 і exception.

Приклад 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. Отже, програма зайде в блок крім, і ми надрукуємо оператор, який написаний тільки для умови помилки.