的Python - __init __()失踪1个人需要的位置参数:
问题描述:
我有点新的Python,我不能让过去这个错误:的Python - __init __()失踪1个人需要的位置参数:
Traceback (most recent call last):
File "***", line 63, in <module>
bst = Node()
TypeError: __init__() missing 1 required positional argument: 'val'
基本上,该程序是一个BST这将让你插入,搜索和只查找左边的最小项目。
下面的代码(对不起,它的匈牙利)
class Node:
def __init__(self, val):
self.ertek = val
self.balgyerek = None
self.jobbgyerek = None
self.gyoker = None
def beszur(self, pri):
if self.gyoker:
return self.gyoker.beszur(pri)
else:
self.gyoker = Node(pri)
return True
if self.ertek == pri:
return False
elif self.ertek > pri:
if self.balgyerek:
return self.balgyerek.beszur(pri)
else:
self.balgyerek = Node(pri)
return True
else:
if self.jobbgyerek:
return self.jobbgyerek.beszur(pri)
else:
self.jobbgyerek = Node(pri)
return True
def keres(self, pri):
if self.gyoker:
return self.gyoker.keres(pri)
else:
return False
if(self.ertek == pri):
return True
elif self.ertek > pri:
if self.balgyerek:
return self.balgyerek.keres(pri)
else:
return False
else:
if self.jobbgyerek:
return self.jobbgyerek.keres(pri)
else:
return False
def minimumertek(self):
jelenlegi = self
while(jelenlegi.balgyerek is not None):
jelenlegi = jelenlegi.balgyerek
return self.ertek
bst = Node()
答
的__init__
方法只要一个类的一个对象被实例化运行。您的__init__
方法有两个位置参数:self它引用对象实例并自动传递,并且val它被分配到self.ertek。但是,您未通过val的值。因此,错误。尝试在类实例化处传递值val。例如bst =节点('ertek值')
一个'Node'需要'val'。你不提供一个。 – jonrsharpe
你的类有'val'属性,但是当你创建一个'Node'对象时,并没有给它任何值。 – Arman