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

继承抽象类未调用父类构造触发pylint的super-init-not-called警告怎么解决

解决pylint未调用父类构造函数警告的方案

以下是三种常用的处理方式,可根据实际场景选择:

  • 局部行内禁用(最推荐)
    仅在当前不需要调用父类构造函数的子类__init__方法上添加禁用注释,不会影响其他代码的检查逻辑:
class Father:
    def __init__(self):
        pass
class Son(Father):
    # 仅对当前方法禁用super-init-not-called警告
    def __init__(self): # pylint: disable=super-init-not-called
        self.salary = 700
    def __repr__(self):
        return f"my salary is {self.salary}"
print(Son())

修改后重新执行pylint检查即可消除该警告。

  • 全局禁用警告
    如果项目中存在大量同类合法场景,可在pylint配置文件中全局关闭该检查规则:
  1. 在项目根目录新建.pylintrc配置文件
  2. 添加如下配置项:
[MESSAGES CONTROL]
disable=super-init-not-called

注意:该方案会全局关闭该规则的校验,可能遗漏确实需要调用父类构造函数的风险场景,非必要不推荐使用。

  • 抽象类场景规范改造
    如果父类本身是设计为无需实例化的抽象基类,可将父类改造为Python标准抽象类,多数版本的pylint会自动识别该场景,不需要额外禁用规则即可消除警告:
from abc import ABC

class Father(ABC):
    def __init__(self):
        pass

class Son(Father):
    def __init__(self):
        self.salary = 700
    def __repr__(self):
        return f"my salary is {self.salary}"

该方案符合Python代码规范,适合可以调整父类定义的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:39:02