I have a function that returns False if something isn't found, and returns a data structure with what I'm looking for otherwise. When I assign the value returned from this function to a variable my_var in a for loop, I do a if my_var == False: continue to carry on.
pychecker doesn't like this and reports Comparisons with False are not necessary and may not work as expected.
What's the python way for doing this?
As a return value indicating absence of a result,
Noneis almost always better.If you must use
False, usenot my_var. This assumes non -Falsereturn values are never "falsy" (bool()converts it intoFalse- this is the case for empty strings, empty collections, and a few other things).If objects may be falsy but must be distinguished from
False, then the comparison is necessary and you'll have to ignore the error (a minor variation,my_var is Falsewould be slightly more idiomatic, but it's virtually the same). But that's not a nice situation to be in and you should avoid it for the fake of clarity.To repeat myself: If at all possible, use
Noneand test formy_var is None.