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

如何将Ruff的redefined-argument-from-local设为错误?我的设置是否有误?

问题解决:PLR1704规则仅触发警告及替代检测方法

一、修复Ruff中PLR1704仅触发警告的问题

你的配置已正确启用PLR1704规则,但默认该规则的级别为警告(warning),要让它触发错误(error),需在pyproject.toml中显式指定规则的严重程度:

# pyproject.toml
[tool.ruff]
line-length = 120

[tool.ruff.lint]
extend-select = ["PLR1704"]
# 显式将PLR1704设为错误级别
rules = {
  "PLR1704": "error"
}

另外,VS Code中添加--preview参数是正确的,因为PLR1704属于Ruff的预览规则,需该参数才能生效。

二、Python中检测参数被局部覆盖的其他方法

除了Ruff的PLR1704,还有以下工具可检测此类变量遮蔽问题:

  • PyLint:自带W0621规则(redefined-outer-name),可检测局部变量覆盖外部作用域变量(包括函数参数)。可在.pylintrc中配置将该规则设为错误级别:
    [MESSAGES CONTROL]
    enable=W0621
    severity=W0621:error
    
  • Pyright/Mypy:静态类型检查器均支持检测变量遮蔽。以Pyright为例,可在pyrightconfig.json中启用reportShadowedVariable并设为错误:
    {
      "reportShadowedVariable": "error"
    }
    
  • Pre-Commit钩子:结合上述工具配置pre-commit钩子,在代码提交前强制检查此类问题,避免错误代码进入版本库。

内容的提问来源于stack exchange,提问作者link89

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:30:15