[Python-3000] Making more effective use of slice objects in Py3k (original) (raw)

Josiah Carlson jcarlson at uci.edu
Wed Aug 30 20:25:58 CEST 2006


"Paul Prescod" <paul at prescod.net> wrote:

Yes, thanks for the clarification. From a type theory point of view there is nothing stopping string + view returning a view always (even if it is a view of a new string) but that would have very poor performance characteristics.

It depends. Assume single-segment views (that's what I've been implementing). If you have two non-adjacent views, or a view+string (for non-empty strings), etc., you need to take the time to construct the new string, that's a given. But once you have a string, you could return either the string, or you could return a full view of the string. The performance differences are fairly insignificant (I was not able to measure any).

Up until this morning I was planning on writing everything such that constructive manipulation (upper(), add, etc.) returned views of strings. While I still feel it would be more consistant to always return views, returning strings does let the user know that "this operation may take a while" by virtue of returning a string.



More information about the Python-3000 mailing list