list = [1, 2, 3]
print list.append(4) ## NO, does not work, append() returns None
## Correct pattern:
list.append(4)
print list ## [1, 2, 3, 4]
我正在学习python,我不确定这个问题是否特定于语言以及如何在python中实现append。
在第一个实例中,打印附加操作的结果。如果append()成功完成,则返回"none",如中所述,遇到的问题:none
如果成功,append将返回None。没有比这更多的了。
啊,如果原始代码中的注释提到append是一个void函数,那么(至少对我来说)更容易理解。这很有道理,谢谢。
大多数标准库使用的约定是,如果一个方法应该在适当的位置改变对象,那么它应该返回None。有些例外情况下,遵循此规则会使代码更难使用(例如list.pop)。但这些绝对是例外,而不是规则。
这个问题和你问的问题非常相似。也可以在那里查看答案。
stackoverflow.com/questions/1682567/…
append是一种变异(破坏性)操作(它在适当位置修改列表,而不是返回新列表)。与append进行无损等效的惯用方法是
l = [1,2,3]
print l + [4] # [1,2,3,4]
print l # [1,2,3]
为了回答你的问题,我猜如果append返回新修改的列表,用户可能会认为它是非破坏性的,