AttributeError: объект ‘NoneType’ не имеет атрибута ‘add’

Вопрос: Я получил следующую ошибку AttributeError: 'NoneType' object has no attribute 'add' в то время как я пробовал это. not_yet_bought_set = set() . . . for value in set_dict.itervalues(): for item in value: not_yet_bought_set = not_yet_bought_set.add(item) Я не понимаю, почему я получил эту ошибку, потому что я всегда делаю not_yet_bought_set new? Я делаю это, потому

Вопрос:

Я получил следующую ошибку

AttributeError: ‘NoneType’ object has no attribute ‘add’

в то время как я пробовал это.

not_yet_bought_set = set() . . . for value in set_dict.itervalues(): for item in value: not_yet_bought_set = not_yet_bought_set.add(item)

Я не понимаю, почему я получил эту ошибку, потому что я всегда делаю not_yet_bought_set new? Я делаю это, потому что, когда я только делаю

not_yet_bought_set.add(item)

там не будут все предметы из всех значений. Я не знаю почему.

значения являются множествами и

not_yet_bought_set.union(value)

также генерировать эту ошибку

Спасибо за любую помощь.

Лучший ответ:not_yet_bought_set.add(item)

это вернет None и вы назначите его not_yet_bought_set. Итак, not_yet_bought_set теперь становится None. В следующий раз

not_yet_bought_set = not_yet_bought_set.add(item)

выполняется, add будет вызываться в None. Вот почему он терпит неудачу.

Чтобы исправить это, просто сделайте это. Не присваивайте это чему-либо.

not_yet_bought_set.add(item) Ответ №1

set.add ничего не возвращает.

>>> s = set() >>> the_return_value_of_the_add = s.add(1) >>> the_return_value_of_the_add is None True

Заменить следующую строку:

not_yet_bought_set = not_yet_bought_set.add(item)

с:

not_yet_bought_set.add(item)

Оцените статью
Добавить комментарий