为什么PyLint会警告没有__init__?
我们有很多Python类,它们似乎不需要__init__
这个初始化方法,空着初始化这些类是完全可以接受的,甚至是更好的选择。但是,PyLint这个工具似乎认为这样不好。我是不是漏掉了什么,为什么没有__init__
会被认为是个坏习惯?还是说我应该忽略这些警告,继续我的工作?
2 个回答
2
通常情况下,你至少会用到 __init__()
这个方法来初始化实例变量。如果你不打算这么做,那就可以放心地关闭那个警告。
15
你这些类是用来干嘛的呢?
如果它们只是一些不需要保存状态的函数的集合,那就没必要用到__init__()
这个方法。你可以把这些函数直接放到一个单独的模块里,这样更合理。
但如果这些类需要保存状态(也就是说它们有实例变量),那么你应该加一个__init__()
方法,这样这些变量才能被初始化。即使你在创建类的时候不提供这些变量的值,定义它们也是个好主意,这样你在调用方法的时候就不会引用那些可能不存在的实例变量了。
不过,如果你真的不需要__init__()
,那就可以不理会这个警告。
编辑:根据你的评论,看起来你对在初始化之前引用变量时会出现的AttributeError并不在意。这也是一种完全可以接受的编程方式,所以在这种情况下,忽略PyLint的警告是合理的。