2017-02-12 81 views
1

我的代码:builtins.TypeError:__init __()缺少2个所需的位置参数:

class SUCHER(EventHandler): 

def __init__(self): 
    self.vokabel = VOKABEL() 
    EventHandler.__init__(self) 
    self.button = Button("Suchen!", Point(250,200)) 
    self.button.setFontSize(25) 
    self.button.setFillColor("lightgrey") 
    self.button.addHandler(self) 
    self.lateinischesWort = TextBox(200,50,Point(120,100)) 
    self.übersetzungsText = Rectangle(200,50,Point(380,100)) 
    self.textD = Text("Deutsches Wort", 15, Point(380,50)) 
    self.textL = Text("Lateinisches Wort", 15, Point(120,50)) 
    self.textU = Text(self.vokabel, 25, Point(380,100)) 

def anzeigenIn(self, Fenster): 
    Fenster.add(self.button) 
    Fenster.add(self.übersetzungsText) 
    Fenster.add(self.lateinischesWort) 
    Fenster.add(self.textD) 
    Fenster.add(self.textL) 
    Fenster.add(self.textU) 

def handle(self, Event): 
    if Event.getDescription() == "mouse click": 
     self.textL = self.wort 
     self.textU = self.übersetzung 
     self.textU.setMessage(self.vokabel) 

class BINÄRBAUM: 

def __init__(self): 
    self.wurzel = ABSCHLUSS() 

def einfügen(self, Datum): 
    self.wurzel = self.wurzel.einfügen(Datum) 

def inorderAusgeben(self): 
    self.wurzel.inorderAusgeben() 

def preorderAusgeben(self): 
    self.wurzel.preorderAusgeben() 

def postorderAusgeben(self): 
    self.wurzel.postorderAusgeben() 

def suchen(self, Schlüssel): 
    self.wurzel.suchen(Schlüssel) 

class KNOTEN: 

def __init__(self, Datum): 
    self.datum = Datum 
    self.links = ABSCHLUSS() 
    self.rechts = ABSCHLUSS() 

def einfügen(self, Datum): 
    if Datum.schlüsselGeben() < self.datum.schlüsselGeben(): 
     self.links = self.links.einfügen(Datum) 
    else: 
     self.rechts = self.rechts.einfügen(Datum) 
    return self 

def inorderAusgeben(self): 
    self.links.inorderAusgeben() 
    self.datum.informationAusgeben() 
    self.rechts.inorderAusgeben() 

def preorderAusgeben(self): 
    self.datum.informationAusgeben() 
    self.links.preorderAusgeben() 
    self.rechts.preorderAusgeben() 

def postorderAusgeben(self): 
    self.links.postorderAusgeben() 
    self.rechts.postorderAusgeben() 
    self.datum.informationAusgeben() 

def suchen(self, Schlüssel): 
    if self.datum.schlüsselGeben() == Schlüssel.casefold(): 
     self.datum.informationAusgeben() 
    elif self.datum.schlüsselGeben() > Schlüssel.casefold(): 
     self.links.suchen(Schlüssel) 
    else: 
     self.rechts.suchen(Schlüssel) 

class ABSCHLUSS: 

def __init__(self): 
    pass 

def einfügen(self, Datum): 
    return KNOTEN(Datum) 

def inorderAusgeben(self): 
    pass 

def preorderAusgeben(self): 
    pass 

def postorderAusgeben(self): 
    pass 

def suchen(self, Schlüssel): 
    pass 

class VOKABEL: 

def __init__(self, Wort, Übersetzung): 
    self.wort = Wort 
    self.übersetzung = Übersetzung 

def informationAusgeben(self): 
    print("Das Wort",self.wort,"hat die Bedeutung",self.übersetzung,".") 

def schlüsselGeben(self): 
    return self.wort.casefold() 

v = VOKABEL("Nebel", "fog") 
s = SUCHER() 
b = BINÄRBAUM() 
b.einfügen(v) 
b.inorderAusgeben() 
b.preorderAusgeben() 
b.postorderAusgeben() 
b.suchen("Nebel") 
fenster = Canvas(500,250) 
s.anzeigenIn(fenster) 

我是来自德国的一个程序员,我有一个problem.By我使用该模块cs1graphics的方式。我得到错误:builtins.TypeError:init()缺少2个必需的位置参数:'Wort'和'Übersetzung' 所以我能做些什么来解决这个问题?

+2

您的缩进显示不正确。类中的所有方法都应该在该类中缩进。 – cdarke

+1

请修复您的缩进。 –

+1

'self.vokabel = VOKABEL()'不提供这两个必需的参数。 – cdarke

回答

0
class SUCHER(EventHandler): 
def __init__(self): 
    self.vokabel = VOKABEL() 

你正在实例化一个新的VOKABEL类而不给它需要的2个参数。看到这里的构造函数:

class VOKABEL: 

def __init__(self, Wort, Übersetzung): 
+0

好吧,我明白了,谢谢。但是,我应该改变混凝土?我需要两个VOKABEL的参数在这个SUCHER中,我不想从VCHABEL的参数在这个SUCHER中,但我想获得一个具有参数的新对象(self.vokabel)。 – YanHem

+0

我不确定要很好地理解你想要什么,但是如果你需要在SUCHER中由'v = VOKABEL(“Nebel”,“fog”)创建的Vokabel实例,你可以将它作为参数传递:'s = SUCHER(v)'然后'class SUCHER(EventHandler): def __init __(self,vokabel): self.vokabel = vokabel'就是这样吗? – VdF

+0

这就是非常感谢你:) – YanHem

相关问题