Python - __init __()缺少1个必需的位置参数:

时间:2017-01-22 15:25:50

标签: python

我是python的新手,我无法克服这个错误:

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

1 个答案:

答案 0 :(得分:0)

只要实例化类的对象,就会运行__init__方法。您的__init__方法有两个位置参数: self ,它引用对象实例并自动传递, val 分配给 self.ertek 即可。但是,您没有传递 val 的值。因此,错误。尝试在类实例化中传递 val 的值。例如 bst =节点('ertek值')