python - 当我将列表传递给另一个方法时,它返回 NoneType。我怎样才能解决这个问题?
问题描述
我正在尝试编写一个main()
方法,该方法将调用另一个读取 .txt 文件中各个记录的方法;这就是loadFile()
方法。我已经测试过该loadFile()
方法有效并且它返回的列表是 ListType。但是,当我loadFile()
在内部调用main()
并尝试对生成的列表采取行动时,我会收到类似TypeError: 'NoneType' object is not subscriptable
. 有人可以帮助我确保我从一种方法传递到下一种方法的列表仍然是 ListType 吗?
def loadFile(fileName):
openFile = open(fileName, 'r')
records = openFile.readlines()
recordList = []
for item in records:
recordList.append(item.rstrip('\n'))
print(recordList)
openFile.close()
def main():
nameFile = 'names.txt'
names = loadFile(nameFile)
print(names[12])
main()
解决方案
您应该return
从函数中获取值,而不是打印。
def loadFile(fileName):
openFile = open(fileName, 'r')
records = openFile.readlines()
recordList = []
for item in records:
recordList.append(item.rstrip('\n'))
openFile.close()
return recordList
def main():
nameFile = 'names.txt'
names = loadFile(nameFile)
print(names[12])
main()
如果您没有显式返回任何内容,Python 中的函数将始终返回None
.
推荐阅读
- c++ - 如何在 C++ 中解析 json url 并从源代码中获取标题?
- css - CSS Slider 使用 `transform: translateX` 循环图像
- mysql - 具有创建/更新日期的行,使用 mysql 滑动窗口计算挂起计数?
- mapping - 即使在更改 CRS 后,QGIS 坐标也不会改变,点都重叠
- git - 使用 GitHub Desktop 克隆的存储库无法从终端找到私有存储库
- javascript - 如何在自己的 html 页面中使用 javascript 制作功能搜索引擎?
- javascript - 在双击事件侦听器上停止 href 进入下一页
- sql - 插入
和 * - python - django DoesNotExist 管理面板不错
- python - DRF:如何使用视图集中的操作装饰设置正确的 view_name