我收到以下错误
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)
也会生成此错误
感谢您的帮助。
答案 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)