python - 为什么 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
??
解决方案
append
函数的返回类型是None
,这是一种 Pythonic 方式,表示它不返回值。
基本上,该append
函数不返回值,而是执行操作(将元素添加到列表中),仅此而已。
您正在尝试返回不返回值的函数的结果,因此输出为None
.
另一方面,当您尝试第二种方式时,append
操作已经发生,并且您返回一个 type 的对象<List>
,它可以正常工作。
推荐阅读
- html - 下拉样式粘在顶部不起作用
- amazon-web-services - AWS 目标组 - 一个目标不起作用
- php - Laravel 5 - 我应该在哪里编写这个函数,以及如何编写?
- php - here-api:获取定位 API REST 响应的地址
- c - 与已定义符号 C 的令牌连接
- python - 如何在在线服务器中运行 Selenium python 代码
- c++ - 我有一个具有不同前缀的相关函数的 C 库。派生的 C++ 类如何在不重复代码的情况下调用它们?
- php - php通过自动加载器调用函数
- python - 使用 python psycopg 将字符串参数传递给 sql-procedure (postgreSQL) 时发生错误
- laravel - Laravel 非对象