div. Fehlermeldungen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
stoffl6781
User
Beiträge: 11
Registriert: Sonntag 14. Dezember 2014, 19:04

Hi zusammen,

ich bekomme immer wieder Fehelrmeldungen - wenn ich dann ein leerzeichen in diesem Bereich lösche, dann kommt wiederum eine andere Fehlermeldung ?

Anei ein paar Fehlermeldungen
vl kann mir das jemand erklären warum das kommt, oder mach ich vl. am Format was falsch??
Es muss auf jeden Fall mit der Zeile etwas zu tun haben - Tab verwende ich eigentlich keine, da ich da auch schon öfters Probleme hatte

danke

Code: Alles auswählen

Traceback (most recent call last):
  File "testmenu.pyw", line 71, in <module>
    App()
  File "testmenu.pyw", line 23, in __init__
    for t in TempDevices()]
  File "testmenu.pyw", line 23, in <listcomp>
    for t in TempDevices()]
TypeError: __init__() takes exactly 4 arguments (3 given)
pi@tempctrl ~/Desktop/tempctrl $

Code: Alles auswählen

  File "testmenu.pyw", line 38
    self.window.mainloop()
    ^
IndentationError: unexpected indent

Betroffene Zeilen:

Code: Alles auswählen

class App:
    def __init__(self):
        self.window = tk.Tk()
        self.window.title("RPI CTRL by S.E.C.")
        self.window.minsize(600,500)
        self.window.configure(background="#7AC5CD")
        self.tempLabels = [Thermometer(self.window, t)
                           for t in TempDevices()]
        for t in self.tempLabels: t.pack()
        self.colors = ["red", "green", "blue", "black"]
        self.c = Canvas(master=self.window, width = 320,
                        height= 250, bg="white")
        self.c.create_text(20, 20, text="30 °C")
        self.c.create_text(20, 220, text="20 °C")
        self.c.pack()
        t = TempDevices()
        self.pens = []
        for i in range(len(t)):
            self.pens.append(Pen (self.c,
                t[i], self.colors[i%4]))
        _thread.start_new_thread(self.update1, ())

        self.window.mainloop()

    def update1(self):
        while True:
            for i in range(60):
                for pen in self.pens:
                    pen.draw(i*5)
                time.sleep(1)
            self.c.delete("point")
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Die Fehlermeldungen sind doch selbstsprechend: Die erste sagt aus, dass ein Parameter mehr erwartet wird (bei der Erzeugung einer Thermometer-Instanz in Zeile 7). Die zweite sagt aus, dass die Einrückung nicht stimmt.
Das Leben ist wie ein Tennisball.
BlackJack

@stoffl6781: Threads und GUIs darf man so nicht verwenden. Auch wenn das scheinbar funktionieren mag, das ist nicht garantiert, das Verhalten des Programms ist undefiniert.
stoffl6781
User
Beiträge: 11
Registriert: Sonntag 14. Dezember 2014, 19:04

EyDu hat geschrieben:Die Fehlermeldungen sind doch selbstsprechend: Die erste sagt aus, dass ein Parameter mehr erwartet wird (bei der Erzeugung einer Thermometer-Instanz in Zeile 7). Die zweite sagt aus, dass die Einrückung nicht stimmt.
Ja ich verstehe die Meldungen schon, aber komischerweise kommen diese nacheinander ... warum auch immer, einmal diese Meldung beim nächsten start nur die andere ...
Das mit dem Einrücken kommt oft bei TAB und Leerzeichen - ich verwende nur noch Leerzeichen, bis jetzt meine beste Erfahrung.

aber ich denke, dass BlackJeck genau das angesprochen hat, wo mir einen Strich durch die Rechnung macht.

Danke für die Infos!
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

stoffl6781 hat geschrieben:Das mit dem Einrücken kommt oft bei TAB und Leerzeichen - ich verwende nur noch Leerzeichen, bis jetzt meine beste Erfahrung.
Das ist auch die Empfehlung in PEP-8 (Style Guide for Python Code).
Antworten