[Python-ideas] comparison of operator.itemgetter objects

Steven D'Aprano steve at pearwood.info
Mon Apr 2 11:38:05 CEST 2012


Max Moroz wrote:
> Currently, __eq__() method is not defined in class operator.itemgetter,
> hence non-identical itemgetter objects compare as non-equal.
>> I wanted to propose defining __eq__() method that would return the result
> of comparison for equality of the list of arguments submitted at
> initialization. This would make operator.itemgetter('name') compare as
> equal to operator.itemgetter('name').

In general, I think that having equality tests fall back on identity test is 
so rarely what you actually want that sometimes I wonder why we bother.
In this case I was going to say just write your own subclass, but:
py> from operator import itemgetter
py> class MyItemgetter(itemgetter):
... pass
...
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: type 'operator.itemgetter' is not an acceptable base type
-- 
Steven


More information about the Python-ideas mailing list

AltStyle によって変換されたページ (->オリジナル) /