[英]NameError occurring after calling nested function
所以我将一个 .txt 文件拆分为一个列表列表(如下所示)。 但是,当我尝试运行print(splitKeyword(keywords[1][0]))
来尝试打印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]]
尝试这个:
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)
查看splitKeyword
函数中的return keywordList
。 它返回值( keywordList
)。 但在其他范围内,您无法访问该变量,因此您需要将其存储在某处。
您的keywordList
是函数splitKeyword()
本地函数,而不是函数functionOne()
。 这就是您收到 NameError 的原因。
关键字列表是函数 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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.