如何将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
相关产品推荐
相关产品推荐

