2017-01-22 92 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值')

相關問題