Я продолжаю получать ошибку, которая говорит
AttributeError: 'NoneType' object has no attribute 'something'
Код, который у меня есть, слишком длинный, чтобы публиковать здесь. Какие общие сценарии могут вызвать это AttributeError
, что NoneType
должно означать и как я могу сузить, что происходит?
python
attributeerror
nonetype
Джейкоб Гриффин
источник
источник
print
функции (или операторы в зависимости от версии), чтобы выявить фактические значения, которые переменные фактически имеют в коде, который имеет эту проблему.None
.Ответы:
NoneType означает, что вместо экземпляра какого-либо Класса или Объекта, с которым вы думаете, вы работаете, вы фактически получите
None
. Обычно это означает, что вызов или присвоение функции, приведенное выше, завершились неудачно или вернули неожиданный результат.источник
У вас есть переменная, равная None, и вы пытаетесь получить доступ к ее атрибуту, который называется «что-то».
или
Оба приведут к
AttributeError: 'NoneType'
источник
None
то. Явноеfoo = None
вряд ли будет проблемой; это произойдет,foo = something()
и вы не понимаете, чтоsomething()
можете вернуться,None
если это не удастся или набор результатов будет пустым или что-то еще.Другие объяснили, что это
NoneType
такое, и как это обычно делается (то есть, не удается вернуть значение из функции).Другой распространенной причиной, по
None
которой вы не ожидаете, является назначение операции на месте изменяемого объекта. Например:sort()
Метод списка сортирует список на месте, то естьmylist
видоизменяется. Но фактическое возвращаемое значение метода -None
не отсортированный список. Таким образом , вы только что назначенNone
наmylist
. Если вы в следующий раз попытаетесь сделать это, скажем,mylist.append(1)
Python выдаст вам эту ошибку.источник
NoneType
Является типом значенияNone
. В этом случае переменнаяlifetime
имеет значениеNone
.Обычный способ добиться этого - вызвать функцию, в которой отсутствует a
return
.Однако существует бесконечное множество других способов установить для переменной значение None.
источник
lifetime
имеет значениеNone
(предварительное редактирование). Он пытался получить доступ к атрибуту жизни чего-то еще, что былоNone
.Рассмотрим код ниже.
Это даст вам ошибку
Итак, пункты как ниже.
источник
Это означает объект, к которому вы пытаетесь получить доступ
None
.None
являетсяNull
переменной в Python. Этот тип ошибки происходит, потому что ваш код выглядит примерно так.источник
gddc прав, но добавляя очень частый пример:
Вы можете вызвать эту функцию в рекурсивной форме. В этом случае вы можете получить нулевой указатель или
NoneType
. В этом случае вы можете получить эту ошибку. Поэтому, прежде чем получить доступ к атрибуту этого параметра, проверьте, если это не такNoneType
.источник
if foo is not None:
При построении оценщика (sklearn), если вы забыли вернуть self в функции fit, вы получите ту же ошибку.
Добавление
return self
в функцию подгонки исправляет ошибку.источник
Вы можете получить эту ошибку, прокомментировав HTML в приложении Flask. Здесь значение для qual.date_expiry - Нет:
Удалить строку или исправить ее:
источник
если мы назначим что-то похожее на приведенное ниже, он выдаст ошибку как «AttributeError: объект« NoneType »не имеет атрибута« show »»
источник