Guido van Rossum: Dubious hypergeneralization.
Greg Wilson: Do you have an editor macro set up yet to generate that phrase? :-)
No, I actually know how to spell that. :-)
Greg Wilson: Understood; I'm asking whether changing its name and interpretation (in a way that doesn't break any existing code) would be worthwhile:
>>> path = "/some/long/path/to/file.html" >>> main, parent, file = path.split("/", -2) >>> main "/some/long/path" >>> parent "to" >>> file "file.html"
OK, that's an example. It's only so-so, because you should be using os.path.split() anyway. It's done best as follows: temp, file = os.path.split(path) main, parent = os.path.split(temp)
Greg Wilson: Turns out that "abbc".replace("b", "x", -1) is "axxc" (i.e. negative arguments are ignored). I would have expected this to raise a ValueError, if anything. Is there a reason for this behavior?
Greg Wilson again: Question still stands --- if these are counts, then shouldn't negative values raise exceptions?
Given that it's documented with the name "maxsplit", it's not unreasonable that -1 is treated the same as 0. --Guido van Rossum (home page: http://www.python.org/~guido/)