[Python-3000] simplifying methods (was: Re: Droping find/rfind?) (original) (raw)

Guido van Rossum guido at python.org
Fri Aug 25 19:37:44 CEST 2006


Then you would have to drop the same style of optional arguments from all string methods.

There is a method to this madness: the slice arguments let you search through the string without actually making the slice copy. This matters rarely, but when it does, it can matter a lot -- imagine s being 100 MB long, and the specified slice being a large portion of that.

(Yes, the string "views" that some folks would like to add could solve this in a different way. But IMO the views make everybody pay because basic usage of the string data type will be slower, and there are horrible worst-case scenarios (such as keeping one word from many 10-MB strings). We've gone over this many times without anybody ever showing a realistic bullet-proof imlpementation or performance figures other than micro-benchmarks. Perhaps someone should write a PEP so I can reject it. :-)

--Guido

On 8/25/06, Jim Jewett <jimjjewett at gmail.com> wrote:

On 8/24/06, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote: > Until a few moments ago, I didn't know that str.startswith() > had any optional arguments

I just looked them up, and they turn out to just be syntactic sugar for a slice. (Even to the extent of handling omitted arguments as None.) The stop argument in particular is (almost) silly. s.startswith(prefix, start, stop) === s[start:stop].startswith(prefix) Ignoring efficiency concerns, would dropping the optional arguments and requiring an explicit slice be a valid Py3K simplification? -jJ


Python-3000 mailing list Python-3000 at python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/guido%40python.org

-- --Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-3000 mailing list