I’m speaking of this module: http://docs.python.org/library/operator.html
From the article:
The operator module exports a set of functions implemented in C corresponding to the intrinsic operators of Python. For example, operator.add(x, y) is equivalent to the expression x+y. The function names are those used for special class methods; variants without leading and trailing __ are also provided for convenience.
I’m not sure I understand the benefit or purpose of this module.
Possibly the most popular usage is operator.itemgetter. Given a list
lstof tuples, you can sort by the ith element by:lst.sort(key=operator.itemgetter(i))Certainly, you could do the same thing without operator by defining your own key function, but the operator module makes it slightly neater.
As to the rest, python allows a functional style of programming, and so it can come up — for instance, Greg’s reduce example.
You might argue: ‘Why do I need
operator.addwhen I can just do:add = lambda x, y: x+y?’ The answers are:operator.addis (I think) slightly faster.operator.addis picklable, whilelambdais not. This means that the function can be saved to disk or passed between processes.