AttributeError:' NoneType'对象没有属性'添加'

时间:2013-11-08 07:41:28

标签: python set attributeerror

我收到以下错误

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变成新的?我这样做,因为我只做

not_yet_bought_set.add(item)

不会有所有值的所有项目。我不知道为什么。

值是集合和

not_yet_bought_set.union(value)

也会生成此错误

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

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 :(得分: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)