【问题标题】:How to fix pylint warning "Abstract class not referenced"?如何修复 pylint 警告“未引用抽象类”?
【发布时间】:2011-11-24 19:04:16
【问题描述】:

我有一个 Python 类,它为几个方法引发了“NotImplementedError”,并且该类被其他一些在它们自己的文件中定义的类继承。

当我在具有抽象类的文件上运行 Pylint 时,它总是抱怨“未引用抽象类”。我想知道这只是 Pylint 偏执还是我确实需要解决一些问题?

【问题讨论】:

  • 不看一些代码很难说

标签: python warnings abstract-class pylint


【解决方案1】:

如果你的类中有一个方法引发NotImplementedError,这足以让 pylint 认为这是一个抽象类。

作为 pylint 检查与项目其余部分隔离的每个文件,如果没有人从文件中的此类继承,它将引发此消息。

如果你想停用它,你必须在你的类定义之前加上这个注释:

#pylint: disable=R0921

【讨论】:

  • 非常感谢您的帮助! - 杰克
  • 最好将整个模块作为一个整体使用pylint,而不是禁用 R0921,除非您的模块确实是一个实际提供抽象类的库。 (但是你至少应该有子类的测试。)
【解决方案2】:

Pylint 认为每个文件都是“独立的”,因此在检查定义抽象类但没有子类的文件时,它会抱怨 R0921 (http://www.logilab.org/card/pylintfeatures)。

其实消息类型是“R”,代表“refactor”(http://www.logilab.org/card/pylint_manual#pylint-output):Pylint 是在暗示“good practice”,但是你可以愉快地就这样离开它。

【讨论】:

    猜你喜欢
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多