在构造函数中初始化的列表上的 NameError [Python3]
NameError on list that's initialized in the constructor [Python3]
我对编程非常陌生,到目前为止,我的项目都是由拼接在一起的示例代码组成的弗兰肯斯坦式怪兽。这是我在很大程度上独立开发的第一个项目。到目前为止,进展并不顺利。不过很有趣!
我正在开发一个 class 函数,该函数 returns 仅显示一个列表中不在另一个给定列表中的值。我从 here 中找到了代码,但出现了 NameError。
我的代码:
def __init__ (self, extracted): #Constructor
allWords = extracted
shelfFile = shelve.open('knownWordsPersistant') #Opens preexisting shelve module file
knownWords = shelfFile['knownWords'] #The list that the error specifies
def getUnknownWords (self):
return [x for x in allWords if x not in knownWords] #Line that causes error
错误:
Traceback (most recent call last):
File "C:\Users\Jack
Hanson\Desktop\Programming\Python\VocabFinder\main.py", line 16, in <module>
possUnknWrds = knownWordsObject.getUnknownWords(vocabArray)
File "C:\Users\Jack
Hanson\Desktop\Programming\Python\VocabFinder\KnownWordsUpdater.py", line
16, in getUnknownWords
if (inArray[i] not in knownWords):
NameError: name 'knownWords' is not defined
如果您需要更多上下文或信息,我很乐意提供。
这是一个范围界定问题....
您应该在 class self.knownWords
上设置一个属性,然后在您的函数中使用 self.knownWords
。 allWords
.
同样的事情
在您的代码中,您正试图引用 getUnknownWords
中的局部变量,这些变量未如错误消息所示定义。
此外,您不应该使用驼峰式大小写。使用下划线。
我对编程非常陌生,到目前为止,我的项目都是由拼接在一起的示例代码组成的弗兰肯斯坦式怪兽。这是我在很大程度上独立开发的第一个项目。到目前为止,进展并不顺利。不过很有趣!
我正在开发一个 class 函数,该函数 returns 仅显示一个列表中不在另一个给定列表中的值。我从 here 中找到了代码,但出现了 NameError。
我的代码:
def __init__ (self, extracted): #Constructor
allWords = extracted
shelfFile = shelve.open('knownWordsPersistant') #Opens preexisting shelve module file
knownWords = shelfFile['knownWords'] #The list that the error specifies
def getUnknownWords (self):
return [x for x in allWords if x not in knownWords] #Line that causes error
错误:
Traceback (most recent call last):
File "C:\Users\Jack
Hanson\Desktop\Programming\Python\VocabFinder\main.py", line 16, in <module>
possUnknWrds = knownWordsObject.getUnknownWords(vocabArray)
File "C:\Users\Jack
Hanson\Desktop\Programming\Python\VocabFinder\KnownWordsUpdater.py", line
16, in getUnknownWords
if (inArray[i] not in knownWords):
NameError: name 'knownWords' is not defined
如果您需要更多上下文或信息,我很乐意提供。
这是一个范围界定问题....
您应该在 class self.knownWords
上设置一个属性,然后在您的函数中使用 self.knownWords
。 allWords
.
在您的代码中,您正试图引用 getUnknownWords
中的局部变量,这些变量未如错误消息所示定义。
此外,您不应该使用驼峰式大小写。使用下划线。