[Python-Dev] Fwd: Problem withthe API for str.rpartition()
Raymond Hettinger
rhettinger at ewtllc.com
Tue Sep 5 19:10:47 CEST 2006
>
> This change looks wrong:
>
> PyDoc_STRVAR(rpartition__doc__,
> -"S.rpartition(sep) -> (head, sep, tail)\n\
> +"S.rpartition(sep) -> (tail, sep, head)\n\
>
> It looks like the code itself does the right thing, but I wasn't quite
> confident of that.
>
It is correct. There may be some confusion in terminology. Head and
tail do not mean left-side or right-side. Instead, they refer to the
"small part chopped-off" and "the rest that is still choppable". Think
of head and tail in the sense of car and cdr.
A post-condition invariant for both str.partition() and str.rpartition() is:
assert sep not in head
For non-looping cases, users will likely to use different variable names
when they unpack the tuple:
left, middle, right = s.rpartition(p)
But when they perform multiple partitions, the "tail" or "rest"
terminology is more appropriate for the part of the string that may
still contain separators.
Raymond
More information about the Python-Dev
mailing list