[Eric S Raymond, breaking a too-long silence] > ... > I think the right answer is to leave find() as it is and have a different > notation that returns bool. How about `a in b' whenever a and b are > both string-valued? Seems the most natural candidate. I want to raise one other issue here: should '' in 'xyz' return True or raise an exception? I've been burned, e.g., by >>> 'xyz'.startswith('') True >>> when '' was computed by an expression that didn't "expect to" reduce to nothingness, and I expect *everyone* here has been saved more than once by that '' in 'xyz' currently raises an exception. If we make __contains__ act like 'xyz'.find('') >= 0 that (very probable) error will pass silently in the future: >>> 'xyz'.find('') 0 >>> IOW, do we follow find() rigidly, or retain "str1 in str2"'s current behavior when str1 is empty?
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4