Hopefully this is the right place for Pylint suggestions; I did not see any other mailing lists that appeared to fit. I am working on a large project with a lot of existing Python code, and we use pylint in our processes. One frequently used module has a class with a lot of property methods and regular methods, e.g. class Cl(Parent): @property def thing1(self): return calculate_thing1() @property def test2(self): return get_test2() def is_fubd(self): return some_other_test() == 42 So, naturally, I mistakenly used the last item above as if it was a property instead of a method: if is_fubd: do_something() else: do_something_else() The code, of course, needs to be: if is_fubd(): ... The first form is valid code but mostly useless, because the is_fubd method exists so an 'if' test is always true. And it is a real pain to find the mistake by inspection. It would sure be nice to have pylint flag this usage as suspicious.
I think that this would be better a pylint specific issue on github Also I think this would be quite hard - it seems you want a check that says 'if this is a function that is used in a boolean but it it not called' that seems quite specific and you never know, if it's not a syntax error, perhaps it's legitimately used by someone? However I defer to the pylint gurus as this is just my conjecture :-) On 05/09/2018 11:05:21, Jim Reuter <jreuter@ddn.com> wrote: Hopefully this is the right place for Pylint suggestions; I did not see any other mailing lists that appeared to fit. I am working on a large project with a lot of existing Python code, and we use pylint in our processes. One frequently used module has a class with a lot of property methods and regular methods, e.g. class Cl(Parent): @property def thing1(self): return calculate_thing1() @property def test2(self): return get_test2() def is_fubd(self): return some_other_test() == 42 So, naturally, I mistakenly used the last item above as if it was a property instead of a method: if is_fubd: do_something() else: do_something_else() The code, of course, needs to be: if is_fubd(): ... The first form is valid code but mostly useless, because the is_fubd method exists so an 'if' test is always true. And it is a real pain to find the mistake by inspection. It would sure be nice to have pylint flag this usage as suspicious.
participants (2)
-
Carl Crowder
-
Jim Reuter