pylint的“太less的公共方法”消息意味着什么

我在一些代码上运行pylint,并收到错误“太less的公共方法(0/2)”。 这个消息是什么意思? pylint文档没有帮助:

当class级公共方法太less时使用,所以确保它真的值得。

这个错误基本上说,类不是存储数据,因为你基本上把这个类作为一个字典对待。 类应该有至less几个方法来操作他们所持有的数据。

如果你的class级看起来像这样:

class MyClass(object): def __init__(self, foo, bar): self.foo = foo self.bar = bar 

考虑使用一个字典或一个namedtuple代替。 虽然如果一个class似乎是最好的select,使用它。 pylint并不总是知道什么是最好的。

如果您正在扩展课程,那么我的build议是系统地禁用此警告并继续,例如,在芹菜任务的情况下:

 class MyTask(celery.Task): # pylint: disable=too-few-public-methods """base for My Celery tasks with common behaviors; extends celery.Task ... 

即使你只是扩展一个单一的function,你肯定需要一个类来使这个技术的function,扩展肯定比黑客在第三方类更好!