PyCQA/flake8-bugbear

Proposed Check: Flag Improper Use of string.find()

Aperta

#170 aperta il 22 mag 2021

 (3 commenti) (0 reazioni) (0 assegnatari)Python (116 fork)github user discovery
enhancementhelp wanted

Metriche repository

Star
 (1116 stelle)
Metriche merge PR
 (Merge medio 4h 17m) (3 PR mergiate in 30 g)

Descrizione

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.

Guida contributor