[Python-Dev] Remove str.find in 3.0?

Bill Janssen janssen at parc.com
Sat Aug 27 04:40:29 CEST 2005


> There are basically two ways for a system, such as a 
> Python function, to indicate 'I cannot give a normal response."  One (1a) 
> is to give an inband signal that is like a normal response except that it 
> is not (str.find returing -1).  A variation (1b) is to give an inband 
> response that is more obviously not a real response (many None returns). 
> The other (2) is to not respond (never return normally) but to give an 
> out-of-band signal of some sort (str.index raising ValueError).
> 
> Python as distributed usually chooses 1b or 2.  I believe str.find and 
> .rfind are unique in the choice of 1a.

Doubt it.  The problem with returning None is that it tests as False,
but so does 0, which is a valid string index position.  The reason
string.find() returns -1 is probably to allow a test:

      if line.find("\f"):
	 ... do something

Might add a boolean "str.contains()" to cover this test case.

Bill


More information about the Python-Dev mailing list