[Python-ideas] This seems like a wart to me...
skip at pobox.com
skip at pobox.com
Thu Dec 11 17:36:11 CET 2008
Guido> Which of the two would you choose for all? The empty string is the
Guido> only reasonable behavior for split-with-argument, it is the logical
Guido> consequence of how it behaves when the string is not empty. E.g.
Guido> "x:y".split(":") -> ["x", "y"], "x::y".split(":") -> ["x", "", "y"],
Guido> ":".split(":") -> ["", ""]. OTOH split-on-whitespace doesn't behave
Guido> this way; it extracts the non-empty non-whitespace-containing
Guido> substrings.
In my feeble way of thinking I go from something which evaluates to false to
something which doesn't. It's almost like making matter out of empty space:
bool("") -> False
bool("".split()) -> False
bool("".split("n")) -> True
Guido> If anything it's wrong, it's that they share the same name. This
Guido> wasn't always the case. Do you really want to go back to .split()
Guido> and .splitfields(sep)?
That might be preferable. The same method having such strikingly different
behavior throws me every time I try splitting a possibly empty string with a
non-whitespace character. It's a relatively uncommon case. Most of the
time when you split a string with a non-whitespace character I think you
know that the input can't be empty.
Skip
More information about the Python-ideas
mailing list