2017-01-22 101 views
-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() 
+4

一个'Node'需要'val'。你不提供一个。 – jonrsharpe

+1

你的类有'val'属性,但是当你创建一个'Node'对象时,并没有给它任何值。 – Arman

回答

0

__init__方法只要一个类的一个对象被实例化运行。您的__init__方法有两个位置参数:self它引用对象实例并自动传递,并且val它被分配到self.ertek。但是,您未通过val的值。因此,错误。尝试在类实例化处传递值val。例如bst =节点('ertek值')

相关问题