Выдается, когда в
конце найден один оператор return или return None. определение функции или метода. Этот оператор можно безопасно
удалить, поскольку Python неявно вернет None
В документации ruff по PLR1711 мы читаем:
Что он делает
Проверяет функции, которые заканчиваются ненужным возвратом или возвращают None и не содержат других операторов возврата.
Похоже, что в документации ruff ненужное return или return None относится к такому оператору, при удалении которого функция останется практически той же.
Значит, и ruff, и pylint должны пометить этот возврат, верно?:
Код: Выделить всё
def f():
"""docs"""
return None
Код: Выделить всё
!pip install pylint ruff>/dev/null
!pylint --version && ruff --version
!printf "\nDOCS :\n"
!printf 'def f():\n """docs"""\n return None' > a.py
!pylint --disable C a.py
!ruff check --extend-select PLR1711 a.py
!printf "\nPRINT :\n"
!printf 'def f():\n print()\n return None' > a.py
!pylint --disable C a.py
!ruff check --extend-select PLR1711 a.py
Код: Выделить всё
pylint 3.3.1
astroid 3.3.5
Python 3.10.12 (main, Sep 11 2024, 15:47:36) [GCC 11.4.0]
ruff 0.7.4
DOCS :
------------------------------------
Your code has been rated at 10.00/10
All checks passed!
PRINT :
************* Module a
a.py:1:0: R1711: Useless return at end of function or method (useless-return)
-------------------------------------------------------------------
Your code has been rated at 6.67/10 (previous run: 10.00/10, -3.33)
a.py:3:5: PLR1711 [*] Useless `return` statement at end of function
|
1 | def f():
2 | print()
3 | return None
| ^^^^^^^^^^^ PLR1711
|
= help: Remove useless `return` statement
Found 1 error.
[*] 1 fixable with the `--fix` option.
Подробнее здесь: https://stackoverflow.com/questions/791 ... unctions-w