all operators having a counterpart in the operator module.
Closes SF bug #577513.
Return \var{o} positive.
\end{funcdesc}
+\begin{funcdesc}{pow}{a, b}
+\funcline{__pow__}{a, b}
+Return \var{a} \code{**} \var{b}, for \var{a} and \var{b} numbers.
+\end{funcdesc}
+
\begin{funcdesc}{rshift}{a, b}
\funcline{__rshift__}{a, b}
Return \var{a} shifted right by \var{b}.
{\code{invert(\var{a})}}
\lineiii{Bitwise Or}{\code{\var{a} | \var{b}}}
{\code{or_(\var{a}, \var{b})}}
+ \lineiii{Exponentiation}{\code{\var{a} ** \var{b}}}
+ {\code{pow(\var{a}, \var{b})}}
\lineiii{Indexed Assignment}{\code{\var{o}[\var{k}] = \var{v}}}
{\code{setitem(\var{o}, \var{k}, \var{v})}}
\lineiii{Indexed Deletion}{\code{del \var{o}[\var{k}]}}
self.failUnless(operator.pos(0) == 0)
self.failUnless(operator.pos(-0) == 0)
+ def test_pow(self):
+ self.failUnless(operator.pow(3,5) == 3**5)
+ self.failUnless(operator.__pow__(3,5) == 3**5)
+ self.assertRaises(TypeError, operator.pow, 1)
+ self.assertRaises(TypeError, operator.pow, 1, 2, 3)
+
def test_repeat(self):
a = range(3)
self.failUnless(operator.repeat(a, 2) == a+a)
spamrc(op_gt , Py_GT)
spamrc(op_ge , Py_GE)
+static PyObject*
+op_pow(PyObject *s, PyObject *a)
+{
+ PyObject *a1, *a2;
+ if (PyArg_ParseTuple(a,"OO:pow",&a1,&a2))
+ return PyNumber_Power(a1, a2, Py_None);
+ return NULL;
+}
+
static PyObject*
op_getslice(PyObject *s, PyObject *a)
{
"setitem(a, b, c) -- Same as a[b] = c.")
spam2(delitem,__delitem__,
"delitem(a, b) -- Same as del a[b].")
+spam2(pow,__pow__, "pow(a, b) -- Same as a**b.")
spam2(getslice,__getslice__,
"getslice(a, b, c) -- Same as a[b:c].")
spam2(setslice,__setslice__,