You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Pylint与Ruff不检测带文档字符串函数的无用return?如何开启检测?

如何配置Pylint与Ruff检测仅含文档字符串和无用return的函数?

问题背景

根据Pylint官方文档,它会检测函数/方法末尾的单个return或return None语句(Python会隐式返回None,这类语句完全可以安全移除);Ruff的PLR1711规则则专门检测函数末尾无其他return语句时的不必要return或return None。

按规则要求,下面这段代码应该被检测出问题:

def f():
    """docs"""
    return None

但在Google Colab环境测试时,Pylint(3.3.1)和Ruff(0.7.4)都没报错;可一旦函数里加了print()语句再搭配return None,两个工具又能正常识别出无用return。以下是针对两个工具的配置方法:


Pylint配置方案

Pylint默认不会对仅含文档字符串和return None的函数触发useless-return(W0150)警告,需要调整配置开启这个场景的检测:

  • 方法一:在Colab中创建或修改.pylintrc配置文件,添加如下内容:
[MESSAGES CONTROL]
enable=useless-return

[BASIC]
check-docstring-first=no
  • 方法二:直接通过命令行参数指定配置运行Pylint:
pylint --enable=useless-return --check-docstring-first=no your_script.py

说明:check-docstring-first=no会让Pylint不把文档字符串当成函数内的有效执行语句,这样就能识别出末尾的return None是多余的。


Ruff配置方案

Ruff的PLR1711规则默认忽略仅含文档字符串的函数场景,需要修改配置文件调整规则行为:

  • 方法一:在Colab中创建ruff.toml配置文件,写入以下内容:
[lint]
rules = ["PLR1711"]

[lint.rules.PLR1711]
ignore-empty-docstring-functions = false
  • 方法二:运行Ruff时指定配置文件:
ruff check --config ruff.toml your_script.py

说明:ignore-empty-docstring-functions默认值是true,设为false后,Ruff就会对仅含文档字符串和return None的函数触发PLR1711警告。


内容的提问来源于stack exchange,提问作者Visit mjrecent on Telegram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 08:15:55