Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does PyLint warn about no __init__?

Tags:

We have numerous python classes that do not seem to need __init__, initialising them empty is either perfectly acceptable or even preferable. PyLint seems to think this is a bad thing. Am I missing some insight into why having no __init__ is a Bad Smell? Or should I just suppress those warnings and get over it?

like image 412
Pete Avatar asked Feb 01 '12 17:02

Pete


1 Answers

What are you using these classes for?

If they are just a grouping of functions that do not need to maintain any state, there is no need for an __init__() but it would make more sense to just move all of those functions into their own module.

If they do maintain a state (they have instance variables) then you should probably have an __init__() so that those variables can be initialized. Even if you never provide values for them when the class is created, it is generally a good idea to have them defined so that your method calls are not referencing instance variables that may or may not exist.

That being said, if you don't need an __init__(), feel free to ignore that warning.

edit: Based on your comment, it seems like you are fine with the AttributeError you will get on referencing variables before initialization. That is a perfectly fine way to program your classes so in that case ignoring the warning from PyLint is reasonable.

like image 162
Andrew Clark Avatar answered Oct 02 '22 21:10

Andrew Clark