簡體   English   中英

為什么在 python 中定義變量后出現名稱錯誤?

[英]Why am I getting a name error after defining the a variable in python?

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

您收到此錯誤是因為您指的是不存在的變量size

當從外部實例化時,您的變量array_size將獲得它的值,並且可以在內部使用相同的值。 但是,如果您打算修改它,請先將其分配給另一個變量,然后修改新變量,例如,

size = array_size
size = size + 1 

但是,在您發布的代碼的上下文中,除了用於存儲 LinkedList 對象列表的self_array之外,您顯然不需要任何其他變量。

我已經使用占位符 LinkedList class 復制了您的代碼(注釋掉錯誤代碼),並且它運行時沒有給出任何錯誤。

class LinkedList:
    def __init__(self):
        self.start_node = None


class 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))

output 是:

20

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM