### 15.2. The operator Module

The operator module supplies functions that are equivalent to Python's operators. These functions are handy in cases where callables must be stored, passed as arguments, or returned as function results. The functions in operator have the same names as the corresponding special methods (covered in "Special Methods" on page 104). Each function is available with two names, with and without leading and trailing double underscores (e.g., both operator.add(a,b) and operator._ _add_ _(a,b) return a+b). Table 15-1 lists the functions supplied by the operator module.

##### Table 15-1. Functions supplied by the operator module

Method

Signature

Behaves like

abs

abs(a)

abs(a)

a+b

and_

and_(a,b)

a&b

concat

concat(a,b)

a+b

contains

contains(a,b)

b in a

countOf

countOf(a,b)

a.count(b)

delitem

delitem(a,b)

del a[b]

delslice

delslice(a,b,c)

del a[b:c]

div

div(a,b)

a/b

eq

eq(a,b)

a==b

floordiv

floordiv(a,b)

a//b

ge

ge(a,b)

a>=b

getitem

getitem(a,b)

a[b]

getslice

getslice(a,b,c)

a[b:c]

gt

gt(a,b)

a>b

indexOf

indexOf(a,b)

a.index(b)

invert, inv

invert(a), inv(a)

~a

is

is(a,b)

a is b

is_not

is_not(a,b)

a is not b

le

le(a,b)

a<=b

lshift

lshift(a,b)

a<<b

lt

lt(a,b)

a<b

mod

mod(a,b)

a%b

mul

mul(a,b)

a*b

ne

ne(a,b)

a!=b

neg

neg(a)

-a

not_

not_(a)

not a

or_

or_(a,b)

a|b

pos

pos(a)

+a

repeat

repeat(a,b)

a*b

rshift

rshift(a,b)

a>>b

setitem

setitem(a,b,c)

a[b]=c

setslice

setslice(a,b,c,d)

a[b:c]=d

sub

sub(a,b)

a-b

truediv

truediv(a,b)

a/b # "true" div -> no truncation

truth

truth(a)

not not a, bool(a)

xor_

xor(a,b)

a^b

Module operator also supplies two higher-order functions whose results are functions suitable for passing as named argument key= to the sort method of lists, the sorted built-in function, and (in Python 2.5) other built-in functions such as min and max.

 attrgetter attrgetter(attr) Returns a callable f such that f(o) is the same as getattr(o,attr). itemgetter itemgetter(key) Returns a callable f such that f(o) is the same as getitem(o,key). For example, say that L is a list of lists, with each sublist at least three items long, and you want to sort L, in-place, based on the third item of each sublist. The simplest way is: ```import operator L.sort(key=operator.itemgetter(2)) ```