私たちは大学向けの小さなウェブアプリを開発することを望んでいます/強制されています。さて、上記の奇妙なエラーが発生するまで、私たちはすべてを始めました。
"Statement expected、found py:Dedent"
エラーは、次のコード行によって発生します。
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は "return" ""ステートメントをマークし始めました。
宜しくお願いします、
マリアン
エラーを無視することで問題は解決しました。他のエディタにコピーされましたが、ここには何もありません。だから、pycharmの間違いのようです。
宜しくお願いします、
マリアン
また、かなりの期間頭をひっかいていましたが、ついにそれを見つけました。
「pycharmは特定のcharを認識しませんでした」スコープの外にあります
これを書くとき:
class Foo:
def complicated_method(self):
for f to self.whatever:
# plenty of code goes here
pass
def another one():
# here too
pass
そして、あなたはそれを書き直すことにしました:
class Foo:
def complicated_method(self):
# plenty of code goes here <- mistakenly leaved unindented, many unseen errors here
pass
def another one(self):
# here too
pass
....
def do(self):
for f in self.whatever:
self.complicated_method() <- here will be Py:DEDENT
可能であれば、長いメソッドをリファクタリングし、Py:DEDENT
二度とあなたを悩ますことはありません
私の問題は、インデントの不一致が原因でした。ドキュメントのほとんどはスペースでインデントされていますが、コピーされたタブがいくつかあり、Py:DEDENTエラーが発生しました。タブをスペースに置き換えると、エラーが修正されました。