[Python-Dev] Proof of the pudding: str.partition()
Phillip J. Eby
pje at telecommunity.com
Wed Aug 31 05:49:15 CEST 2005
At 01:05 AM 8/31/2005 +0200, Fredrik Lundh wrote:
>Ron Adam wrote:
>
> > For cases where single values are desired, attribues could work.
> >
> > Slicing:
> > line = line.partition(';').head
> > line = line.partition('#').head
> >
> > But it gets awkward as soon as you want more than one.
> >
> > sep, port = host.partition(':').head, host.partition(':').sep
>
>unless you go for the piece approach
>
> host, port = host.piece(":", 1, 2)
>
>(which, of course, is short for
>
> host, port = host.piece(":").group(1, 2)
>
>)
>
>and wait for Mr Eby to tell you that piece has nothing whatsoever
>to do with string splitting.
No, just to point out that you can make up whatever semantics you want, but
the semantics you show above are *not* the same as what are shown at the
page the person who posted about $PIECE cited, and on whose content I based
my reply:
http://www.jacquardsystems.com/Examples/function/piece.htm
If you were following those semantics, then the code you presented above is
buggy, as host.piece(':',1,2) would return the original string!
Of course, since I know nothing of MUMPS besides what's on that page, it's
entirely possible I've misinterpreted that page in some hideously subtle
way -- as I pointed out in my original post regarding $PIECE. I like to
remind myself and others of the possibility that I *could* be wrong, even
when I'm *certain* I'm right, because it helps keep me from appearing any
more arrogant than I already do, and it also helps to keep me from looking
too stupid in those cases where I turn out to be wrong. Perhaps you might
find that approach useful as well.
In any case, to avoid confusion, you should probably specify the semantics
of your piece() proposal in Python terms, so that those of us who don't
know MUMPS have some possibility of grasping the inner mysteries of your
proposal.
More information about the Python-Dev
mailing list