Re: [Python-Dev] Remove str.find in 3.0?
On 8/26/05, Bill Janssen <janssen@parc.com> wrote:
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
This has a bug; it is equivalent to "if not line.startswith("\f"):". This mistake (which I have made more than once myself and have seen many times in code by others) is one of the main reasons to want to get rid of this style of return value.
Might add a boolean "str.contains()" to cover this test case.
We already got that: "\f" in line. -- --Guido van Rossum (home page: http://www.python.org/~guido/)
Don't know *what* I wasn't thinking :-). Bill
On 8/26/05, Bill Janssen <janssen@parc.com> wrote:
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
This has a bug; it is equivalent to "if not line.startswith("\f"):".
This mistake (which I have made more than once myself and have seen many times in code by others) is one of the main reasons to want to get rid of this style of return value.
Might add a boolean "str.contains()" to cover this test case.
We already got that: "\f" in line.
participants (2)
-
Bill Janssen
-
Guido van Rossum