首页 > 解决方案 > 为什么 return list_name.append(something) 没有返回?

问题描述

当我定义将值附加到此结构中的列表的函数 f 时:

     list_name=[]
     return list_name.append(a)
>>>print(f(1))
none

当我在以下结构中定义它时:

def f (a) :
     list_name=[]
     list_name.append(a)
     return list_name

它给出了正确的输出

>>>print(f(1))
[1]
>>>print(f(2))
[2]

return list_name.append(a)和有什么区别

list_name.append(a)
return list_name

??

标签: pythonfunctionparametersmutable

解决方案


append函数的返回类型是None,这是一种 Pythonic 方式,表示它不返回值。

基本上,该append函数不返回值,而是执行操作(将元素添加到列表中),仅此而已。

您正在尝试返回不返回值的函数的结果,因此输出为None.

另一方面,当您尝试第二种方式时,append操作已经发生,并且您返回一个 type 的对象<List>,它可以正常工作。


推荐阅读