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

如何修复Pylint错误W1113: keyword-arg-before-vararg?

修复Pylint W1113错误:keyword-arg-before-vararg

问题原因

你当前的代码中,带默认值的参数labels_left、labels_right放在了可变位置参数*args前面,违反了Pylint遵循的参数顺序规范(PEP8建议参数顺序为:位置参数 → *args → 关键字-only参数 → **kwargs),因此触发W1113警告。

正确修复方案

调整参数顺序,将*args移到默认参数前面,让默认参数成为关键字-only参数(调用时必须通过关键字传递,或使用默认值),这样既符合语法规范,也能保留原有功能:

class BaseCompareFeatureWithDefaults(recordlinkage.base.BaseCompareFeature):
    def __init__(self, *args, labels_left="", labels_right="", **kwargs) -> None:
        super().__init__(labels_left, labels_right, *args, **kwargs)

这样修改后,Pylint和Pylance都不会报错,同时调用方式支持:

  • 使用默认值:BaseCompareFeatureWithDefaults()
  • 关键字传参:BaseCompareFeatureWithDefaults(labels_left="left", labels_right="right")
  • 同时传递可变位置参数:BaseCompareFeatureWithDefaults("arg1", "arg2", labels_left="left")

禁用检查的方法

如果你不想调整参数顺序,可以通过以下方式禁用该Pylint规则:

方法1:在函数上方添加注释

class BaseCompareFeatureWithDefaults(recordlinkage.base.BaseCompareFeature):
    # pylint: disable=W1113
    def __init__(self, labels_left="", labels_right="", *args, **kwargs) -> None:
        super().__init__(labels_left, labels_right, *args, **kwargs)

方法2:修改Pylint配置文件

在项目根目录的.pylintrc文件中添加以下内容:

[MESSAGES CONTROL]
disable=W1113

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:53:34