Вопрос:
Я получил следующую ошибку
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)