如何修复pylint警告“抽象类未被引用”?

17 投票
2 回答
5795 浏览
提问于 2025-04-17 07:00

我有一个Python类,这个类里面有几个方法会抛出“NotImplementedError”,意思是这些方法还没有具体实现。这个类被其他几个类继承,而这些类是在不同的文件里定义的。

当我在包含这个抽象类的文件上运行Pylint时,它总是抱怨说“抽象类没有被引用”。我在想,是不是Pylint太敏感了,还是说我真的有什么需要修复的地方?

2 个回答

6

Pylint把每个文件都看作是“独立的”,所以当你检查定义了抽象类但没有子类的文件时,它会发出R0921的警告(http://www.logilab.org/card/pylintfeatures)。

实际上,这个警告的类型是“R”,代表“重构”(http://www.logilab.org/card/pylint_manual#pylint-output):Pylint是在建议你遵循“好的编程习惯”,但你可以放心地保持现在的状态。

25

如果你的类里面有一个方法抛出一个 NotImplementedError 错误,pylint 就会认为这个类是一个抽象类。

因为pylint会把每个文件当作一个独立的部分来检查,所以如果在这个文件里没有其他类继承这个类,它就会给你提示这个信息。

如果你想关闭这个提示,你需要在类定义之前加上这个注释:

#pylint: disable=R0921

撰写回答