On 7 Dec 2006, at 07:15, Fredrik Lundh wrote: > Michael Urman wrote: > >> The idea that slicing a match object should produce a match object >> sounds like a foolish consistency to me. > > well, the idea that adding m[x] as a convenience alias for m.group(x) > automatically turns m into a list-style sequence that also has to > support full slicing sounds like an utterly foolish consistency to me.
How about we remove the word "foolish" from the debate? > the OP's original idea was to make a common use case slightly > easier to > use. if anyone wants to argue for other additions to the match object > API, they should at least come up with use cases based on real > existing > code. An example where it might be useful: m = re.match('(?:([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+) (?P<rect>rect)' '|([0-9]+) ([0-9]+) ([0-9]+) (?P<circle>circle))', lineFromFile) if m['rect']: drawRectangle(m[1:5]) elif m['circle']: drawCircle(m[1:3], m[3]) Is that really so outlandish? I'm not saying that this is necessarily the best way, but why force people to write list(m)[1:5] or [m[i] for i in xrange(1,5)] ?? If the only reason is that some of the match object APIs, which I maintain are very unlikely to be wanted on a slice anyway, can't possibly produce consistent results, then why not just do away with the APIs and return a tuple or something instead? That way you can treat the match object as if it were just a tuple (which it could easily have been). > (and while you guys are waiting, I suggest you start a new thread > where > you discuss some other inconsistency that would be easy to solve with > more code in the interpreter, like why "-", "/", and "**" doesn't work > for strings, lists don't have a "copy" method, sets and lists have > different API:s for adding things, we have hex() and oct() but no > bin(), > str.translate and unicode.translate take different arguments, etc. > get > to work!) Oh come on! Comparing this with exponentiating strings is just not helpful. Kind regards, Alastair. -- http://alastairs-place.net _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com