我正在做一个涉及Linked_List类中各种函数的项目,这是一个双向链表,部分代码涉及查找列表中的节点数。当我打印出来时,我得到了这个:
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)
答案 0 :(得分:0)
发生的事情很简单,您将链接列表中的__init__
定义为:
def __init__(self):
其中一个位置参数即self
,但传递了一个附加参数 - 列表。