为了账号安全,请及时绑定邮箱和手机立即绑定

调用嵌套函数后发生 NameError

调用嵌套函数后发生 NameError

12345678_0001 2021-08-14 17:17:18
所以我将一个 .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]]
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

试试这个:


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 output


results = functionOne("text1.txt")

print(results)

看return keywordList的splitKeyword功能。它返回值( keywordList)。但在其他范围内,您无法访问该变量,因此您需要将其存储在某处。


查看完整回答
反对 回复 2021-08-14
?
DIEA

TA贡献1820条经验 获得超2个赞

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


查看完整回答
反对 回复 2021-08-14
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

关键字列表是函数 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)


查看完整回答
反对 回复 2021-08-14
  • 3 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号