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 = sizeNameError: name 'size' is not defined
1 回答

暮色呼如
TA貢獻1853條經驗 獲得超9個贊
您收到此錯誤是因為您指的是不存在的變量size。
當從外部實例化時,您的變量array_size將獲得其值,并且可以在內部使用相同的值。但是,如果您打算修改它,請先將其分配給另一個變量,然后再修改新變量,例如,
size = array_size
size = size + 1
self_array但是,在您發布的代碼的上下文中,除了用于存儲 LinkedList 對象列表之外,您顯然不需要任何其他變量。
我已經使用占位符 LinkedList 類復制了您的代碼(注釋掉錯誤的代碼)并且它運行時沒有給出任何錯誤。
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))
輸出是:
20
希望能幫助到你
添加回答
舉報
0/150
提交
取消