[Python-3000] Need closure on __cmp__ removal

Mike Klaas mike.klaas at gmail.com
Wed Jan 9 21:10:34 CET 2008


On 9-Jan-08, at 11:41 AM, Oleg Broytmann wrote:

> On Wed, Jan 09, 2008 at 11:34:59AM -0800, Brett Cannon wrote:
>> On Jan 9, 2008 11:34 AM, Oleg Broytmann <phd at phd.pp.ru> wrote:
>>>    newlist = oldlist.sort(key=lambda v: v.attr_x)
>>
>> And don't forget about operator.attrgetter().
>
>    I don't like it for the task. To use I need to import operator, and
> I don't know is it faster or slower than lambda; I suspect it's  
> slower but
> I am too lazy to test. Using lambda to get a simple attribute seems  
> much
> simpler to me.

lambda's are always slower than the equivalent coded in c:

[worio at domU-12-31-38-00-59-81 frontend]$ python -m 'timeit' 'import  
operator; f=operator.attrgetter("open"); import os' 'f(os)'
100000 loops, best of 3: 5.71 usec per loop
[worio at domU-12-31-38-00-59-81 frontend]$ python -m 'timeit' 'f=lambda  
x: x.open; import os' 'f(os)'

100000 loops, best of 3: 6.06 usec per loop

-Mike


More information about the Python-3000 mailing list