[Python-Dev] timsort for jython
Tim Peters
tim.one@comcast.net
Mon, 05 Aug 2002 13:39:06 -0400
[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?