当我将列表传递给另一个方法时,它返回NoneType。我怎样才能解决这个问题?

时间:2019-04-06 14:25:28

标签: python python-3.x

我正在尝试编写一个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()

1 个答案:

答案 0 :(得分:1)

应该从功能中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