it-swarm.com.de

Fehler: Anweisung erwartet, gefunden py: Dedent

wir sind bereit/gezwungen, eine kleine Webapp für die Universität zu entwickeln. Jetzt haben wir angefangen und alles scheint in Ordnung zu sein, bis der oben genannte seltsame Fehler auftritt.

"Anweisung erwartet, gefunden: Dedent"

Der Fehler wird durch die folgenden Codezeilen ausgelöst:

def get_reset_token(self, mysql, userid):
    try:
        conn = mysql.connect()
        cursor = conn.cursor()
        cursor.execute("""SELECT token FROM tralala_reset_password 
                       WHERE uid=(%s)""", userid)
        data = cursor.fetchall()
        cursor.close()
        conn.close()
        return data[0]
    except Exception as e:
        app.logger(str(e))
        return ""

Pycharm begann die "return" -Anweisung zu markieren.

Freundliche Grüße,

Marianisch

7
Keine-Ahnung

Problem gelöst durch Ignorieren des Fehlers. In einen anderen Editor kopiert und hier nichts. Es scheint also ein pycharm Fehler zu sein.

Freundliche Grüße,

Marianisch 

9
Keine-Ahnung

Ich kratzte mich auch für eine lange Zeit am Kopf und fand es schließlich heraus.

Die Sache ist außerhalb von "pycharm" hat bestimmte Charaktereigenschaften nicht erkannt

Wenn du das schreibst:

class Foo:
   def complicated_method(self):
       for f to self.whatever:
           # plenty of code goes here
           pass
   def another one():
       # here to
       pass

Und dann beschließen Sie, es neu zu schreiben:

class Foo:
   def complicated_method(self):
           # plenty of code goes here  <- mistakenly leaved unindented, many unseen errors here
           pass
   def another one(self):
       # here to
       pass
    ....
   def do(self):
       for f in self.whatever:
           self.complicated_method() <- here will be Py:DEDENT

Überarbeiten Sie lange Methoden, wenn Sie können, und Py:DEDENT wird Sie nie wieder stören

1
im_infamous

Mein Problem wurde durch fehlende Übereinstimmung der Eindrücke verursacht. Der Großteil des Dokuments war mit Leerzeichen eingerückt, es wurden jedoch einige Tabs kopiert, die den Fehler Py: DEDENT verursachten. Durch Ersetzen der Tabs durch Leerzeichen wurde der Fehler behoben.

0
David Warnke