这些退货声明有何不同

时间:2014-06-18 14:36:05

标签: python python-2.7

获取以下两个示例代码声明:

result = []
return result.append(feed.entries[0])

&安培;

result = []
result.append(feed.entries[0])
return result

第一个给我一个错误,因为结果的方法被传递给NonType不可迭代的抱怨。为什么是这样?对我来说,两个陈述都是等价的

1 个答案:

答案 0 :(得分:2)

列表的append方法不会返回任何内容

>>> a = []
>>> type(a.append(12))
<type 'NoneType'>

所以当你在做的时候:

return result.append(feed.entries[0])

你实际上在所有情况下都会返回None,而当你这样做时:

result.append(....)
return result

你在变异(修改)后返回列表,从而得到预期的结果。