在构造函数[Python3]中初始化的列表上出现NameError

2024-04-25 21:14:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编程非常陌生,到目前为止,我的项目都是由弗兰肯斯坦式的怪物拼凑在一起的样本代码组成的。这是我的第一个项目,我在很大程度上独立开发。到目前为止,进展并不顺利。不过很有趣!你知道吗

我正在处理一个类函数,它只返回一个列表中不在另一个给定列表中的值。我从here中找到了代码,但是我得到了一个名称错误。你知道吗

我的代码:

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

如果你需要更多的上下文或信息,我很乐意提供。你知道吗


Tags: 项目代码inself列表def错误not
1条回答
网友
1楼 · 发布于 2024-04-25 21:14:21

这是一个范围界定问题。。。。你知道吗

应该在类self.knownWords上设置一个属性,然后在函数中使用self.knownWords。对allWords也是一样。你知道吗

在您的代码中,您试图引用getUnknownWords中的局部变量,这些变量没有定义为错误消息所指示的。你知道吗

另外,你不应该把事情搞得一团糟。使用下划线。你知道吗

相关问题 更多 >