[Python-Dev] Iterable String Redux (aka String ABC)

Antoine Pitrou solipsis at pitrou.net
Tue May 27 22:18:07 CEST 2008


(just my 2 eurocents)

Guido van Rossum <guido <at> python.org> writes:
> 
> I'm not against this, but so far I've not been able to come up with a
> good set of methods to endow the String ABC with.

If we stay minimalistic we could consider that the three basic operations that
define a string are:
- testing for substring containment
- splitting on a substring into a list of substrings
- slicing in order to extract a substring

Which gives us ['__contains__', 'split', '__getitem__'], and expands intuitively
to ['__contains__', 'find', 'index', 'split', 'rsplit', '__getitem__'].

> Another problem is
> that not everybody draws the line in the same place -- how should
> instances of bytes, bytearray, array.array, memoryview (buffer in 2.6)
> be treated?

In the followup of the flatten() example, bytes and bytearray should be Strings,
but array.array and memoryview shouldn't. array.array is really a different kind
of container rather than a proper string, and as for memoryview... well, since
it's not documented I don't know what it's supposed to do :-)

Regards

Antoine.




More information about the Python-Dev mailing list