> 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. I dunno. The exception has annoyed me too. > 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? I expect that Andrew Koenig would delight in this question. :-) I personally see no way to defend ('' in 'x') returning false; it's so clearly a substring that any definition of substring-ness that excludes this seems mathematically wrong, despite your good intentions. I guess we'll have to cope in the same way as we cope with the behavior of find() and startswith() in similar cases. --Guido van Rossum (home page: http://www.python.org/~guido/)
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