[+python-3000] On Tue, May 27, 2008 at 12:32 PM, Armin Ronacher <[EMAIL PROTECTED]> wrote: > Strings are currently iterable and it was stated multiple times that this is a > good idea and shouldn't change. While I still don't think that that's a good > idea I would like to propose a solution for the problem many people are > experiencing by introducing an abstract base class for strings. > > Basically *the* problematic situation with iterable strings is something like > a `flatten` function that flattens out every iterable object except of > strings. > Imagine it's implemented in a way similar to that:: > > def flatten(iterable): > for item in iterable: > try: > if isinstance(item, basestring): > raise TypeError() > iterator = iter(item) > except TypeError: > yield item > else: > for i in flatten(iterator): > yield i > > A problem comes up as soon as user defined strings (such as UserString) is > passed to the function. In my opinion a good solution would be a "String" > ABC one could test against.
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. 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? -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com