Ошибка: Заявление ожидается, найдено 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 ""

Пихарм начал отмечать "возврат" "".

С наилучшими пожеланиями,

Мэриан

7 ответов

Решение

Проблема решена путем игнорирования ошибки. Скопировано в другой редактор и ничего здесь. Похоже, что это ошибка пихарма.

С наилучшими пожеланиями,

Мэриан

Если вы столкнулись с этой проблемой в PyCharm 2021.2, добавьте следующую строку

      -ea

в помощь | Изменить пользовательские параметры виртуальной машины ... или в <PyCharm_installation_folder>/bin/pycharm.vmoptions (или pycharm64.vmoptions). Перезапустите PyCharm, и парсер должен работать правильно.

См. Соответствующий билет в системе отслеживания ошибок PyCharm https://youtrack.jetbrains.com/issue/PY-49970.

Моя проблема была вызвана несоответствием отступов. Большая часть документа была заполнена пробелами, но было скопировано несколько вкладок, которые привели к ошибке Py:DEDENT. Замена вкладок пробелами исправила ошибку.

Я также царапал свою голову в течение длительного периода времени и наконец понял это.

Дело в том, что за пределами сферы действия "Пичарм не узнал определенного персонажа"

Когда вы пишете это:

class Foo:
   def complicated_method(self):
       for f to self.whatever:
           # plenty of code goes here
           pass
   def another one():
       # here to
       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 to
       pass
    ....
   def do(self):
       for f in self.whatever:
           self.complicated_method() <- here will be Py:DEDENT

Переработайте длинные методы, если можете, и Py:DEDENT никогда не побеспокою тебя

Была такая же проблема после обновления моей профессиональной оснастки pycharm на Ubuntu 21.*. Исправлена ​​переустановка pycharm с помощью jetbrains-toolbox.

В PyCharm 2021.2.2 Professional Edition я вижу ошибку в следующем случае

      defthe_fun_one(cls):
 cls.some_module.some_function()

def the_fun_two(cls):
 cls.some_other_module.some_other_function()

Я вижу ожидаемое заявление, нашел Py:DEDENT в строке cls.some_other_module.some_other_function()когда предыдущая функция не имела определения, не разделенного опечаткой пробела, например defthe_fun_one(cls):

  • Пункт списка

У меня возникла проблема, когда в моем файле был дополнительный объект -> return. Значит, это была синтаксическая ошибка.

Другие вопросы по тегам