builtins.TypeError:__ init __()缺少2个必需的位置参数:

时间:2017-02-12 18:51:41

标签: python arguments

我的代码:

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)

我是来自德国的程序员,我遇到了问题。通过我使用模块cs1graphics的方式。我得到错误:builtins.TypeError: init ()缺少2个必需的位置参数:'Wort'和'Übersetzung'  那么我该怎么做才能解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

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

您正在实现一个新的VOKABEL类,而没有为它提供所需的2个参数。看这里的构造函数:

class VOKABEL:

def __init__(self, Wort, Übersetzung):