Ruff return-in-try-except-finally (SIM107)

return-in-try-except-finally в Ruff проверяет код на предупреждение SIM107. Правило относится к группе flake8-simplify.

Почему это неправильно

Упрощённая запись обычно легче читается и снижает риск ошибки в условии или преобразовании.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила return-in-try-except-finally и пример ниже.

Пример ошибки

def squared(n):
    try:
        sqr = n**2
        return sqr
    except Exception:
        return "An exception occurred"
    finally:
        return -1  # Always returns -1.

Как правильно

def squared(n):
    try:
        return_value = n**2
    except Exception:
        return_value = "An exception occurred"
    finally:
        return_value = -1
    return return_value

Автоисправление

Ruff не предлагает автоисправление для этого правила.