Справочник · ошибки Python
AttributeError
У значения нет такого метода или свойства: опечатка в названии или значение другого типа, чем ожидалось.
Python пишет ошибку в последней строке сообщения: сначала название, после двоеточия — подробности. Найди своё сообщение ниже — рядом объяснение простыми словами и что исправить.
В модуле нет такой команды
AttributeError: module 'random' has no attribute 'randomint'
- Что случилось
- В модуле
randomнет командыrandomint. - Почему так бывает
- Скорее всего, опечатка. Большие и маленькие буквы важны: randint пишется маленькими.
- Как исправить
- Проверь название команды по памятке.
Разбираем в уроке 3.6 «Случайность».
Это значение менять нельзя
AttributeError: property 'x' of 'x' object has no setter
- Что случилось
- У этого атрибута нет метода для записи.
- Почему так бывает
- Атрибут сделан через @property только для чтения. Менять его напрямую Python не разрешает.
- Как исправить
- Измени данные, из которых он считается, или добавь метод с декоратором имя.setter.
Разбираем в уроке 9.6 «Скрытое и особое».
Родитель не вызван
class Animal:
def __init__(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name, tricks):
self.tricks = tricks
dog = Dog("Шарик", 3)
print(dog.name)Python сообщает об ошибке
AttributeError: 'Dog' object has no attribute 'name'
- Что случилось
- У объекта класса
xнет атрибутаname. - Почему так бывает
- У
xсвой __init__, и он не вызвал __init__ родителя. Поэтому атрибуты родителя не появились. - Как исправить
- Первой строчкой в своём __init__ напиши super().__init__(...) с нужными значениями.
Разбираем в уроке 9.5 «Наследование».
Нет такого атрибута или команды
class Cat:
def __init__(self, name):
name = name
cat = Cat("Бит")
print(cat.name)Python сообщает об ошибке
AttributeError: 'Cat' object has no attribute 'name'
- Что случилось
- У значения типа
Catнет «name». - Почему так бывает
- Скорее всего, опечатка в названии. Или у этого вида значений такого нет: append есть у списков, а у текста нет.
- Как исправить
- Проверь название и вид значения.
Разбираем в уроке 4.2 «Меняем список».
Другие ошибки
SyntaxErrorNameErrorTypeErrorIndentationErrorTabErrorValueErrorZeroDivisionErrorIndexErrorKeyErrorUnboundLocalErrorRecursionErrorFileNotFoundErrorUnsupportedOperationUnicodeDecodeErrorModuleNotFoundErrorJSONDecodeErrorEOFErrorAssertionErrorValidationErrorMissingSchemaConnectionErrorReadTimeoutHTTPErrorOperationalErrorIntegrityErrorProgrammingErrorNotImplementedError