PEP 358 and operations on bytes

Ben Finney bignose+hates-spam at benfinney.id.au
Tue Oct 3 21:41:47 EDT 2006


Gabriel G <gabrielg_laburando at yahoo.com.ar> writes:

> At Tuesday 3/10/2006 21:52, Ben Finney wrote:
>
> >Gerrit Holl <gerrit at nl.linux.org> writes:
> > >     - str methods endswith, find, partition, replace, split(lines),
> > >       startswith,
> > >     - Regular expressions
> >
> >Looking at those, I don't see why they wouldn't be useful for *all*
> >sequence types. Perhaps there needs to be a 'seq' type containing
> >those common methods, that is the superclass of 'str', 'bytes',
> >'list', 'tuple' et cetera.
>
> find() could be useful sometimes.
> But what means partition, replace, split, etc on a generic sequence?

    >>> "spamandeggs".partition("and")
    ('spam', 'and', 'eggs')
    >>> ["foo", "bar", "spam", "baz", "quux", "wibble"].partition("spam")
    (["foo", "bar"], ["spam"], ["baz", "quux", "wibble"])

    >>> "spamandeggs".startswith("spam")
    True
    >>> ["foo", "bar", "spam", "baz", "quux", "wibble"].startswith("foo")
    True

i.e. the 'str' methods can be seen as operating on a sequence of
characters; their 'str' return values are likewise sequences of
characters. That can be generalised to a sequence of the same type as
the instance; so, in the examples above, the 'list' methods operate on
sub-lists.

Perhaps not all of the mentioned methods make sense for all sequence
types. But I think it would be useful to have a common set of
functionality available for all sequence types, in a common ancestor.

-- 
 \     "He may look like an idiot and talk like an idiot but don't let |
  `\           that fool you. He really is an idiot."  -- Groucho Marx |
_o__)                                                                  |
Ben Finney




More information about the Python-list mailing list