new string method in 2.5 (partition)

Irmen de Jong irmen.NOSPAM at xs4all.nl
Wed Sep 20 14:11:30 EDT 2006


Terry Reedy wrote:
> "Bruno Desthuilliers" <bdesth.quelquechose at free.quelquepart.fr> wrote in 
> message news:4510425e$0$12250$636a55ce at news.free.fr...
>> Err... is it me being dumb, or is it a perfect use case for str.split ?
> 
> s.partition() was invented and its design settled on as a result of looking 
> at some awkward constructions in the standard library and other actual use 
> cases.  Sometimes it replaces s.find or s.index instead of s.split.  In 
> some cases, it is meant to be used within a loop.  I was not involved and 
> so would refer you to the pydev discussions.

While there is the functional aspect of the new partition method, I was
wondering about the following /technical/ aspect:

Because the result of partition is a non mutable tuple type containing
three substrings of the original string, is it perhaps also the case
that partition works without allocating extra memory for 3 new string
objects and copying the substrings into them?
I can imagine that the tuple type returned by partition is actually
a special object that contains a few internal pointers into the
original string to point at the locations of each substring.
Although a quick type check of the result object revealed that
it was just a regular tuple type, so I don't think the above is true...

--Irmen



More information about the Python-list mailing list