blob: 18057704049b11be5e4dba311e741a008285dcfc [file] [log] [blame]
Guido van Rossum61ed4db1996-12-06 21:22:41 +00001% Contributed by Skip Montanaro, from the module's doc strings.
2
Fred Drake3a0351c1998-04-04 07:23:21 +00003\section{Built-in Module \module{operator}}
Fred Drake57b5e421998-02-17 22:30:13 +00004\label{module-operator}
Fred Drake3aa28951997-12-16 00:02:01 +00005\bimodindex{operator}
Guido van Rossum61ed4db1996-12-06 21:22:41 +00006
Fred Drakec07ae9f1998-03-08 05:56:15 +00007The \module{operator} module exports a set of functions implemented in C
Guido van Rossum61ed4db1996-12-06 21:22:41 +00008corresponding to the intrinsic operators of Python. For example,
Fred Drakef3e6df11997-12-29 17:11:55 +00009\code{operator.add(x, y)} is equivalent to the expression \code{x+y}. The
Guido van Rossum61ed4db1996-12-06 21:22:41 +000010function names are those used for special class methods; variants without
Fred Drake98b032a1997-12-04 14:20:59 +000011leading and trailing \samp{__} are also provided for convenience.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000012
Fred Drakec07ae9f1998-03-08 05:56:15 +000013The \module{operator} module defines the following functions:
Guido van Rossum61ed4db1996-12-06 21:22:41 +000014
Fred Drake98b032a1997-12-04 14:20:59 +000015\begin{funcdesc}{add}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000016\funcline{__add__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000017Return \var{a} \code{+} \var{b}, for \var{a} and \var{b} numbers.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000018\end{funcdesc}
19
Fred Drake98b032a1997-12-04 14:20:59 +000020\begin{funcdesc}{sub}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000021\funcline{__sub__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000022Return \var{a} \code{-} \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000023\end{funcdesc}
24
Fred Drake98b032a1997-12-04 14:20:59 +000025\begin{funcdesc}{mul}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000026\funcline{__mul__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000027Return \var{a} \code{*} \var{b}, for \var{a} and \var{b} numbers.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000028\end{funcdesc}
29
Fred Drake98b032a1997-12-04 14:20:59 +000030\begin{funcdesc}{div}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000031\funcline{__div__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000032Return \var{a} \code{/} \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000033\end{funcdesc}
34
Fred Drake98b032a1997-12-04 14:20:59 +000035\begin{funcdesc}{mod}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000036\funcline{__mod__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000037Return \var{a} \code{\%} \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000038\end{funcdesc}
39
40\begin{funcdesc}{neg}{o}
Fred Drakec07ae9f1998-03-08 05:56:15 +000041\funcline{__neg__}{o}
Fred Drake0514ce11997-12-16 14:29:48 +000042Return \var{o} negated.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000043\end{funcdesc}
44
45\begin{funcdesc}{pos}{o}
Fred Drakec07ae9f1998-03-08 05:56:15 +000046\funcline{__pos__}{o}
Fred Drake0514ce11997-12-16 14:29:48 +000047Return \var{o} positive.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000048\end{funcdesc}
49
50\begin{funcdesc}{abs}{o}
Fred Drakec07ae9f1998-03-08 05:56:15 +000051\funcline{__abs__}{o}
Fred Drake0514ce11997-12-16 14:29:48 +000052Return the absolute value of \var{o}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000053\end{funcdesc}
54
55\begin{funcdesc}{inv}{o}
Fred Drakec07ae9f1998-03-08 05:56:15 +000056\funcline{__inv__}{o}
Fred Drake0514ce11997-12-16 14:29:48 +000057Return the inverse of \var{o}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000058\end{funcdesc}
59
Fred Drake98b032a1997-12-04 14:20:59 +000060\begin{funcdesc}{lshift}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000061\funcline{__lshift__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000062Return \var{a} shifted left by \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000063\end{funcdesc}
64
Fred Drake98b032a1997-12-04 14:20:59 +000065\begin{funcdesc}{rshift}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000066\funcline{__rshift__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000067Return \var{a} shifted right by \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000068\end{funcdesc}
69
Fred Drake98b032a1997-12-04 14:20:59 +000070\begin{funcdesc}{and_}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000071\funcline{__and__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000072Return the bitwise and of \var{a} and \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000073\end{funcdesc}
74
Fred Drake98b032a1997-12-04 14:20:59 +000075\begin{funcdesc}{or_}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000076\funcline{__or__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000077Return the bitwise or of \var{a} and \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000078\end{funcdesc}
79
Guido van Rossuma58e9ed1998-05-22 18:48:37 +000080\begin{funcdesc}{xor}{a, b}
81\funcline{__xor__}{a, b}
82Return the bitwise exclusive or of \var{a} and \var{b}.
83\end{funcdesc}
84
85\begin{funcdesc}{not_}{o}
86\funcline{__not__}{o}
87Return the outcome of \keyword{not} \var{o}.
88\end{funcdesc}
89
90\begin{funcdesc}{truth}{o}
91Return 1 if \var{o} is true, and 0 otherwise.
92\end{funcdesc}
93
Fred Drake98b032a1997-12-04 14:20:59 +000094\begin{funcdesc}{concat}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +000095\funcline{__concat__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +000096Return \var{a} \code{+} \var{b} for \var{a} and \var{b} sequences.
Guido van Rossum61ed4db1996-12-06 21:22:41 +000097\end{funcdesc}
98
Fred Drake98b032a1997-12-04 14:20:59 +000099\begin{funcdesc}{repeat}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +0000100\funcline{__repeat__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +0000101Return \var{a} \code{*} \var{b} where \var{a} is a sequence and
102\var{b} is an integer.
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000103\end{funcdesc}
104
Guido van Rossuma58e9ed1998-05-22 18:48:37 +0000105\begin{funcdesc}{contains}{a, b}
106\funcline{sequenceIncludes}{a, b}
107Return the outcome of the test \var{b} \code{in} \var{a}.
108Note the reversed operands.
109\end{funcdesc}
110
111\begin{funcdesc}{countOf}{a, b}
112Return the number of occurrences of \var{b} in \var{a}.
113\end{funcdesc}
114
115\begin{funcdesc}{indexOf}{a, b}
116Return the index of the first of occurrence of \var{b} in \var{a}.
117\end{funcdesc}
118
Fred Drake98b032a1997-12-04 14:20:59 +0000119\begin{funcdesc}{getitem}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +0000120\funcline{__getitem__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +0000121Return the value of \var{a} at index \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000122\end{funcdesc}
123
Fred Drake98b032a1997-12-04 14:20:59 +0000124\begin{funcdesc}{setitem}{a, b, c}
Fred Drakec07ae9f1998-03-08 05:56:15 +0000125\funcline{__setitem__}{a, b, c}
Fred Drake0514ce11997-12-16 14:29:48 +0000126Set the value of \var{a} at index \var{b} to \var{c}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000127\end{funcdesc}
128
Fred Drake98b032a1997-12-04 14:20:59 +0000129\begin{funcdesc}{delitem}{a, b}
Fred Drakec07ae9f1998-03-08 05:56:15 +0000130\funcline{__delitem__}{a, b}
Fred Drake0514ce11997-12-16 14:29:48 +0000131Remove the value of \var{a} at index \var{b}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000132\end{funcdesc}
133
Fred Drake98b032a1997-12-04 14:20:59 +0000134\begin{funcdesc}{getslice}{a, b, c}
Fred Drakec07ae9f1998-03-08 05:56:15 +0000135\funcline{__getslice__}{a, b, c}
Fred Drake0514ce11997-12-16 14:29:48 +0000136Return the slice of \var{a} from index \var{b} to index \var{c}\code{-1}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000137\end{funcdesc}
138
Fred Drake98b032a1997-12-04 14:20:59 +0000139\begin{funcdesc}{setslice}{a, b, c, v}
Fred Drakec07ae9f1998-03-08 05:56:15 +0000140\funcline{__setslice__}{a, b, c, v}
Fred Drake0514ce11997-12-16 14:29:48 +0000141Set the slice of \var{a} from index \var{b} to index \var{c}\code{-1} to the
142sequence \var{v}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000143\end{funcdesc}
144
Fred Drake98b032a1997-12-04 14:20:59 +0000145\begin{funcdesc}{delslice}{a, b, c}
Fred Drakec07ae9f1998-03-08 05:56:15 +0000146\funcline{__delslice__}{a, b, c}
Fred Drake0514ce11997-12-16 14:29:48 +0000147Delete the slice of \var{a} from index \var{b} to index \var{c}\code{-1}.
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000148\end{funcdesc}
149
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000150
Fred Drake0514ce11997-12-16 14:29:48 +0000151Example: Build a dictionary that maps the ordinals from \code{0} to
152\code{256} to their character equivalents.
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000153
Fred Drake19479911998-02-13 06:58:54 +0000154\begin{verbatim}
Guido van Rossum61ed4db1996-12-06 21:22:41 +0000155>>> import operator
156>>> d = {}
157>>> keys = range(256)
158>>> vals = map(chr, keys)
159>>> map(operator.setitem, [d]*len(keys), keys, vals)
Fred Drake19479911998-02-13 06:58:54 +0000160\end{verbatim}