调用嵌套函数后发生 NameError

所以我将一个 .txt 文件拆分为一个列表列表(如下所示)。但是,当我尝试运行print(splitKeyword(keywords[1][0]))以尝试打印关键字列表中第二个列表/元素的第一个元素时,出现错误:NameError: name 'keywordList' is not defined。我怎样才能解决这个问题?


def functionOne(textFile):

        textFileVar = open(textFile, 'r')


    def splitKeyword(argument):

        keywordList = []

        for line in argument:

            keywordList.append(line.strip().split(','))

        return keywordList


    splitKeyword(textFileVar)

    print(keywordList[1][0])


results = functionOne("text1.txt")

print(results)

这是 text1.txt/textFile/textFileVar 的内容


你好世界


123,456


这是打印出来的关键字列表的样子:


[[hello, world], [123, 456]]


12345678_0001
浏览 187回答 3
3回答

九州编程

试试这个:def functionOne(textFile):        textFileVar = open(textFile, 'r')    def splitKeyword(argument):        keywordList = []        for line in argument:            keywordList.append(line.strip().split(','))        return keywordList    output = splitKeyword(textFileVar)    print(output[1][0])    return outputresults = functionOne("text1.txt")print(results)看return keywordList的splitKeyword功能。它返回值( keywordList)。但在其他范围内,您无法访问该变量,因此您需要将其存储在某处。

DIEA

您keywordList是函数的局部变量splitKeyword(),而不是函数的局部变量functionOne()。这就是您收到 NameError 的原因。

慕侠2389804

关键字列表是函数 splitKeyword 的局部变量,它返回它,因此您可以直接使用此函数并减少代码。def functionOne(textFile):    textFileVar = open(textFile, 'r')    def splitKeyword(argument):        keywordList = []        for line in argument:            keywordList.append(line.strip().split(','))        return keywordList    print(splitKeyword(textFileVar))results = functionOne("text1.txt")print(results)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python