为什么PyLint警告没有__init__?

Pet*_*te 20 python pylint

我们有许多似乎不需要的python类__init__,将它们初始化为空是完全可接受的甚至是更好的.PyLint似乎认为这是一件坏事.我错过了一些有关为什么不是__init__一个坏气味的见解?或者我应该只是压制这些警告并克服它?

And*_*ark 12

你在用这些课程做什么?

如果它们只是一组不需要维护任何状态的函数,则不需要a,__init__()但将所有这些函数移动到它们自己的模块中会更有意义.

如果它们确实维持一个状态(它们有实例变量)那么你应该有一个__init__()这样的变量可以初始化.即使您在创建类时从未为它们提供值,通常最好定义它们,以便您的方法调用不引用可能存在也可能不存在的实例变量.

话虽这么说,如果你不需要__init__(),可以随意忽略那个警告.

编辑:根据您的评论,您似乎对使用AttributeError很好,您将在初始化之前引用变量.这是编写类的一种非常好的方法,因此忽略来自PyLint的警告是合理的.