Seite 1 von 1

IndentationError

Verfasst: Samstag 27. Februar 2021, 07:30
von Notgod
Hallo,

ich habve hier ein stück code wenn ich diesen ausführe erhalte ich immer ein Error genaus sagt die COnsole :C:\Users\konst>C:\Users\konst\.idlerc\Main2.py
Traceback (most recent call last):
File "C:\Users\konst\.idlerc\Main2.py", line 2, in <module>
import Sodoku
File "C:\Users\konst\.idlerc\Sodoku.py", line 10
def setzahlen(self, neuzahlen):
^
IndentationError: unindent does not match any outer indentation level

ich weis nicht wie dieser fehler zustande kommt der code :

Code: Alles auswählen

class Feld:

	def __init__(self, feld, zahlen):
		self.feld = feld
		self.zahlen = zahlen

	def getzahlen(self):
		return zahlen

    def setzahlen(self, neuzahlen):
        if isinstance(zahlen, types.ListType):
            zahlen = neuzahlen
        else:
            pass

    def getfeld(self):
		return feld

Re: IndentationError

Verfasst: Samstag 27. Februar 2021, 08:13
von nezzcarth
Man rückt pro Ebene exakt 4 Leerzeichen ein. In deinem Code sind die Einrückungen inkonsistent und das führt zu dem Fehler. Wenn du genau hinschaust, siehst du, dass die beiden unteren 'def'-Zeilen von den oberen abweichen.

Re: IndentationError

Verfasst: Samstag 27. Februar 2021, 08:24
von Notgod
ja aber in Nottpad++ sieht das gleich aus

Re: IndentationError

Verfasst: Samstag 27. Februar 2021, 08:58
von ThomasL
Du vermischt Tabulatoren und Leerzeichen in deinem Code.
Und da fehlen etliche self.
Über die Sinnhaftigkeit der Getter und Setter Funktionen lässt sich streiten. Das ist Java-Style und unpythonisch.
Genauso wie der Typcheck in setzahlen.

Code: Alles auswählen

class Feld:

    def __init__(self, feld, zahlen):
        self.feld = feld
        self.zahlen = zahlen

    def getzahlen(self):
        return self.zahlen

    def setzahlen(self, neuzahlen):
        if isinstance(zahlen, types.ListType):
            self.zahlen = neuzahlen
        else:
            pass
            
    def getfeld(self):
        return self.feld

Re: IndentationError

Verfasst: Samstag 27. Februar 2021, 09:34
von __blackjack__
Zumal es `types.ListType` auch überhaupt gar nicht gibt. Womit letztlich das hier bleibt:

Code: Alles auswählen

class Feld:
    def __init__(self, feld, zahlen):
        self.feld = feld
        self.zahlen = zahlen
Das eine Objekt ein Attribut hat das wie der Typ heisst ist zumindest mal komisch, denn das klingt irgendwie so als wenn der Bestandteil von einem `Feld` wieder ein `Feld` wäre.

Re: IndentationError

Verfasst: Samstag 27. Februar 2021, 10:33
von Sirius3
Ein Setzer der beim "richtigen" Typ etwas macht, sonst aber stillschweigend nichts macht, ist ein riesiger Quell schwer zu findender Fehler. Wenn im else-Block nur pass steht, kann man ihn auch gleich ganz weglassen.