PyCQA/flake8-bugbear
Proposed Check: Flag Improper Use of string.find()
Ouverte
#170 ouverte le 22 mai 2021
enhancementhelp wanted
Métriques du dépôt
- Stars
- (1 116 étoiles)
- Métriques de merge PR
- (Merge moyen 4h 17m) (3 PRs mergées en 30 j)
Description
Title: Flag Improper Use of string.find()
Description The string.find() method is easy to mis-use. A common error is:
mystring='abc'
if mystring.find('def'):
print("def is contained in {}".format(mystring)
The issue is that if string.find fails, it returns -1, which is "truthy". If string.find() locates the output at the beginning of the line, it returns 0 which is "false".
mystring='abc'
if mystring.find('a'):
print("a is in {}".format(mystring))
else:
print('a is not in {}'.format(mystring))
It would be awesome if flake8-bugbear could flag any logical test involving string.find() that does not compare to a numerical value.