Alastair Houghton wrote:

> (The current groups() method *doesn't* match those expectations,  
> incidentally.  I know I've been tripped up in the past because it  
> didn't include the full match as element 0.)

that's because there is no "group 0" in a regular expression; that's 
just a historical API convenience thing.  groups are numbered from 1 and 
upwards, and "groups()" returns all the actual groups.

> What's more, I think it will be confusing for Python newbies because
 > they'll see someone doing
> 
>    m[3]
> 
> and assume that m is a list-like object, then complain when things like
> 
>    for match in m:
>      print match

that'll work, of course, which might be confusing for people who think 
they understand how for-in works but don't ;)

> or
> 
>    m[3:4]
> 
> fail to do what they expect.

the problem with slicing is that people may 1) expect a slice to return 
a new object *of the same type* (which opens up a *gigantic* can of 
worms, both on the implementation level and on the wtf-is-this-thing-
really level), and 2) expect things like [::-1] to work, which opens up 
another can of worms.  I prefer the "If the implementation is easy to 
explain, it may be a good idea." design principle over "can of worms" 
design principle.

</F>

_______________________________________________
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

Reply via email to