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

