2017-06-13 119 views
-3

我正在做一個涉及類Linked_List中的各種函數的項目Linked_List,它是一個雙向鏈表,部分代碼涉及查找列表中的節點數。當我打印出來,但是我得到這個:Python:__init __()需要1個位置參數,但有2個被給出


Traceback (most recent call last) 
<ipython-input-7-8ba59f440a47> in <module>() 
17 
18 if __name__ == '__main__': 
19  x = Linked_List([1,2,3,4,5]) 
20  print(x) 
21 

TypeError: __init__() takes 1 positional argument but 2 were given 

我的代碼如下:

class Linked_List: 
    class Node: 
     def __init__(self, val, prev, next): 
      self.val = val 
      self.prev = prev 
      self.next = next 
    def __init__(self): 
     self._header = self._Node(None, None, None) 
     self._trailer = self._Node(None, None, None) 
     self._header._next = self._trailer 
     self._trailer._prev = self._header 
     self._size = 0 
    def __len__(self): 
     return self._size 
if __name__ == '__main__': 
    x = Linked_List([1, 2, 3, 4, 5]) 
    print(x) 
+2

做*不張貼圖像的代碼*。將問題本身的代碼發佈爲格式化文本。 –

+1

但是,你已經定義了你的'LinkedList'' __init__'只帶'self',但你傳遞給它一個列表。另外,爲什麼你在'LinkedList'裏嵌套'Node'? –

+0

@ juanpa.arrivillaga我不太流利的python,我正在學習python中的數據結構課程,並且我從課本中拿出了一些代碼,它嵌套了_Node,但是教師要求它第一個__init__被公開,下一個__init__被私有,這對我來說沒有任何意義。 – confusedstudent

回答

0

發生了什麼事很簡單,你在鏈表中定義的__init__爲:

def __init__(self): 

這需要一個位置參數,即self,但傳入一個附加參數 - 一個列表。

+0

那麼我能做些什麼來解決它? – confusedstudent

+0

看看LinkedList是如何在Python中實現的。即使你已經修復了,還有很多其他的東西你也應該修復。 – Pythonista

相關問題