为什么在 python 中定义 a 变量后出现名称错误?

class HashMap:

  def __init__(self, array_size):

    self.array_size = size

    self.array = [LinkedList() for number in range(array_size)]

我写了上面的代码,它显示了以下错误:


 File "script.py", line 7, in __init__

    self.array_size = size

NameError: name 'size' is not defined


qq_笑_17
浏览 166回答 1
1回答

暮色呼如

您收到此错误是因为您指的是不存在的变量size。当从外部实例化时,您的变量array_size将获得其值,并且可以在内部使用相同的值。但是,如果您打算修改它,请先将其分配给另一个变量,然后再修改新变量,例如,size = array_sizesize = size + 1 self_array但是,在您发布的代码的上下文中,除了用于存储 LinkedList 对象列表之外,您显然不需要任何其他变量。我已经使用占位符 LinkedList 类复制了您的代码(注释掉错误的代码)并且它运行时没有给出任何错误。class LinkedList:    def __init__(self):        self.start_node = Noneclass HashMap:    def __init__(self, array_size):        #self.array_size = size        self.array = [LinkedList() for number in range(array_size)]a = HashMap(20)print (len(a.array))输出是:20希望能帮助到你
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python