korsygfhrtzangaiide
Elepffwdsff
/
usr
/
share
/
doc
/
python-docs-2.7.5
/
html
/
c-api
/
Upload FileeE
HOME
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Number Protocol — Python 2.7.5 documentation</title> <link rel="stylesheet" href="../_static/default.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '2.7.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/sidebar.js"></script> <link rel="search" type="application/opensearchdescription+xml" title="Search within Python 2.7.5 documentation" href="../_static/opensearch.xml"/> <link rel="author" title="About these documents" href="../about.html" /> <link rel="copyright" title="Copyright" href="../copyright.html" /> <link rel="top" title="Python 2.7.5 documentation" href="../index.html" /> <link rel="up" title="Abstract Objects Layer" href="abstract.html" /> <link rel="next" title="Sequence Protocol" href="sequence.html" /> <link rel="prev" title="Object Protocol" href="object.html" /> <link rel="shortcut icon" type="image/png" href="../_static/py.png" /> <script type="text/javascript" src="../_static/copybutton.js"></script> </head> <body> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="sequence.html" title="Sequence Protocol" accesskey="N">next</a> |</li> <li class="right" > <a href="object.html" title="Object Protocol" accesskey="P">previous</a> |</li> <li><img src="../_static/py.png" alt="" style="vertical-align: middle; margin-top: -1px"/></li> <li><a href="http://www.python.org/">Python</a> »</li> <li> <a href="../index.html">Python 2.7.5 documentation</a> » </li> <li><a href="index.html" >Python/C API Reference Manual</a> »</li> <li><a href="abstract.html" accesskey="U">Abstract Objects Layer</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="number-protocol"> <span id="number"></span><h1>Number Protocol<a class="headerlink" href="#number-protocol" title="Permalink to this headline">¶</a></h1> <dl class="function"> <dt id="PyNumber_Check"> int <tt class="descname">PyNumber_Check</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Check" title="Permalink to this definition">¶</a></dt> <dd><p>Returns <tt class="docutils literal"><span class="pre">1</span></tt> if the object <em>o</em> provides numeric protocols, and false otherwise. This function always succeeds.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Add"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Add</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Add" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of adding <em>o1</em> and <em>o2</em>, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">+</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Subtract"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Subtract</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Subtract" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of subtracting <em>o2</em> from <em>o1</em>, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">-</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Multiply"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Multiply</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Multiply" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of multiplying <em>o1</em> and <em>o2</em>, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">*</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Divide"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Divide</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Divide" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of dividing <em>o1</em> by <em>o2</em>, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">/</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_FloorDivide"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_FloorDivide</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_FloorDivide" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Return the floor of <em>o1</em> divided by <em>o2</em>, or <em>NULL</em> on failure. This is equivalent to the “classic” division of integers.</p> <p class="versionadded"> <span class="versionmodified">New in version 2.2.</span></p> </dd></dl> <dl class="function"> <dt id="PyNumber_TrueDivide"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_TrueDivide</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_TrueDivide" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Return a reasonable approximation for the mathematical value of <em>o1</em> divided by <em>o2</em>, or <em>NULL</em> on failure. The return value is “approximate” because binary floating point numbers are approximate; it is not possible to represent all real numbers in base two. This function can return a floating point value when passed two integers.</p> <p class="versionadded"> <span class="versionmodified">New in version 2.2.</span></p> </dd></dl> <dl class="function"> <dt id="PyNumber_Remainder"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Remainder</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Remainder" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the remainder of dividing <em>o1</em> by <em>o2</em>, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">%</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Divmod"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Divmod</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Divmod" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-0">See the built-in function <a class="reference internal" href="../library/functions.html#divmod" title="divmod"><tt class="xref py py-func docutils literal"><span class="pre">divmod()</span></tt></a>. Returns <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">divmod(o1,</span> <span class="pre">o2)</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Power"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Power</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o3</em><big>)</big><a class="headerlink" href="#PyNumber_Power" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-1">See the built-in function <a class="reference internal" href="../library/functions.html#pow" title="pow"><tt class="xref py py-func docutils literal"><span class="pre">pow()</span></tt></a>. Returns <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">pow(o1,</span> <span class="pre">o2,</span> <span class="pre">o3)</span></tt>, where <em>o3</em> is optional. If <em>o3</em> is to be ignored, pass <a class="reference internal" href="none.html#Py_None" title="Py_None"><tt class="xref c c-data docutils literal"><span class="pre">Py_None</span></tt></a> in its place (passing <em>NULL</em> for <em>o3</em> would cause an illegal memory access).</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Negative"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Negative</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Negative" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the negation of <em>o</em> on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">-o</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Positive"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Positive</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Positive" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns <em>o</em> on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">+o</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Absolute"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Absolute</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Absolute" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-2">Returns the absolute value of <em>o</em>, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">abs(o)</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Invert"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Invert</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Invert" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the bitwise negation of <em>o</em> on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">~o</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Lshift"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Lshift</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Lshift" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of left shifting <em>o1</em> by <em>o2</em> on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre"><<</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Rshift"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Rshift</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Rshift" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of right shifting <em>o1</em> by <em>o2</em> on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">>></span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_And"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_And</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_And" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the “bitwise and” of <em>o1</em> and <em>o2</em> on success and <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">&</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Xor"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Xor</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Xor" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the “bitwise exclusive or” of <em>o1</em> by <em>o2</em> on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">^</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Or"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Or</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_Or" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the “bitwise or” of <em>o1</em> and <em>o2</em> on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">|</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceAdd"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceAdd</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceAdd" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of adding <em>o1</em> and <em>o2</em>, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">+=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceSubtract"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceSubtract</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceSubtract" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of subtracting <em>o2</em> from <em>o1</em>, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">-=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceMultiply"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceMultiply</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceMultiply" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of multiplying <em>o1</em> and <em>o2</em>, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">*=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceDivide"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceDivide</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceDivide" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of dividing <em>o1</em> by <em>o2</em>, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">/=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceFloorDivide"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceFloorDivide</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceFloorDivide" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the mathematical floor of dividing <em>o1</em> by <em>o2</em>, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">//=</span> <span class="pre">o2</span></tt>.</p> <p class="versionadded"> <span class="versionmodified">New in version 2.2.</span></p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceTrueDivide"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceTrueDivide</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceTrueDivide" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Return a reasonable approximation for the mathematical value of <em>o1</em> divided by <em>o2</em>, or <em>NULL</em> on failure. The return value is “approximate” because binary floating point numbers are approximate; it is not possible to represent all real numbers in base two. This function can return a floating point value when passed two integers. The operation is done <em>in-place</em> when <em>o1</em> supports it.</p> <p class="versionadded"> <span class="versionmodified">New in version 2.2.</span></p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceRemainder"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceRemainder</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceRemainder" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the remainder of dividing <em>o1</em> by <em>o2</em>, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">%=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlacePower"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlacePower</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o3</em><big>)</big><a class="headerlink" href="#PyNumber_InPlacePower" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-3">See the built-in function <a class="reference internal" href="../library/functions.html#pow" title="pow"><tt class="xref py py-func docutils literal"><span class="pre">pow()</span></tt></a>. Returns <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">**=</span> <span class="pre">o2</span></tt> when o3 is <a class="reference internal" href="none.html#Py_None" title="Py_None"><tt class="xref c c-data docutils literal"><span class="pre">Py_None</span></tt></a>, or an in-place variant of <tt class="docutils literal"><span class="pre">pow(o1,</span> <span class="pre">o2,</span> <span class="pre">o3)</span></tt> otherwise. If <em>o3</em> is to be ignored, pass <a class="reference internal" href="none.html#Py_None" title="Py_None"><tt class="xref c c-data docutils literal"><span class="pre">Py_None</span></tt></a> in its place (passing <em>NULL</em> for <em>o3</em> would cause an illegal memory access).</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceLshift"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceLshift</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceLshift" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of left shifting <em>o1</em> by <em>o2</em> on success, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre"><<=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceRshift"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceRshift</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceRshift" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the result of right shifting <em>o1</em> by <em>o2</em> on success, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">>>=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceAnd"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceAnd</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceAnd" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the “bitwise and” of <em>o1</em> and <em>o2</em> on success and <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">&=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceXor"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceXor</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceXor" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the “bitwise exclusive or” of <em>o1</em> by <em>o2</em> on success, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">^=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_InPlaceOr"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_InPlaceOr</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o2</em><big>)</big><a class="headerlink" href="#PyNumber_InPlaceOr" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p>Returns the “bitwise or” of <em>o1</em> and <em>o2</em> on success, or <em>NULL</em> on failure. The operation is done <em>in-place</em> when <em>o1</em> supports it. This is the equivalent of the Python statement <tt class="docutils literal"><span class="pre">o1</span> <span class="pre">|=</span> <span class="pre">o2</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Coerce"> int <tt class="descname">PyNumber_Coerce</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> **p1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> **p2</em><big>)</big><a class="headerlink" href="#PyNumber_Coerce" title="Permalink to this definition">¶</a></dt> <dd><p id="index-4">This function takes the addresses of two variables of type <a class="reference internal" href="structures.html#PyObject" title="PyObject"><tt class="xref c c-type docutils literal"><span class="pre">PyObject*</span></tt></a>. If the objects pointed to by <tt class="docutils literal"><span class="pre">*p1</span></tt> and <tt class="docutils literal"><span class="pre">*p2</span></tt> have the same type, increment their reference count and return <tt class="docutils literal"><span class="pre">0</span></tt> (success). If the objects can be converted to a common numeric type, replace <tt class="docutils literal"><span class="pre">*p1</span></tt> and <tt class="docutils literal"><span class="pre">*p2</span></tt> by their converted value (with ‘new’ reference counts), and return <tt class="docutils literal"><span class="pre">0</span></tt>. If no conversion is possible, or if some other error occurs, return <tt class="docutils literal"><span class="pre">-1</span></tt> (failure) and don’t increment the reference counts. The call <tt class="docutils literal"><span class="pre">PyNumber_Coerce(&o1,</span> <span class="pre">&o2)</span></tt> is equivalent to the Python statement <tt class="docutils literal"><span class="pre">o1,</span> <span class="pre">o2</span> <span class="pre">=</span> <span class="pre">coerce(o1,</span> <span class="pre">o2)</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_CoerceEx"> int <tt class="descname">PyNumber_CoerceEx</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> **p1</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> **p2</em><big>)</big><a class="headerlink" href="#PyNumber_CoerceEx" title="Permalink to this definition">¶</a></dt> <dd><p>This function is similar to <a class="reference internal" href="#PyNumber_Coerce" title="PyNumber_Coerce"><tt class="xref c c-func docutils literal"><span class="pre">PyNumber_Coerce()</span></tt></a>, except that it returns <tt class="docutils literal"><span class="pre">1</span></tt> when the conversion is not possible and when no error is raised. Reference counts are still not increased in this case.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Int"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Int</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Int" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-5">Returns the <em>o</em> converted to an integer object on success, or <em>NULL</em> on failure. If the argument is outside the integer range a long object will be returned instead. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">int(o)</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Long"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Long</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Long" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-6">Returns the <em>o</em> converted to a long integer object on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">long(o)</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Float"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Float</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Float" title="Permalink to this definition">¶</a></dt> <dd><em class="refcount">Return value: New reference.</em><p id="index-7">Returns the <em>o</em> converted to a float object on success, or <em>NULL</em> on failure. This is the equivalent of the Python expression <tt class="docutils literal"><span class="pre">float(o)</span></tt>.</p> </dd></dl> <dl class="function"> <dt id="PyNumber_Index"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_Index</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyNumber_Index" title="Permalink to this definition">¶</a></dt> <dd><p>Returns the <em>o</em> converted to a Python int or long on success or <em>NULL</em> with a <a class="reference internal" href="../library/exceptions.html#exceptions.TypeError" title="exceptions.TypeError"><tt class="xref py py-exc docutils literal"><span class="pre">TypeError</span></tt></a> exception raised on failure.</p> <p class="versionadded"> <span class="versionmodified">New in version 2.5.</span></p> </dd></dl> <dl class="function"> <dt id="PyNumber_ToBase"> <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a>* <tt class="descname">PyNumber_ToBase</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *n</em>, int<em> base</em><big>)</big><a class="headerlink" href="#PyNumber_ToBase" title="Permalink to this definition">¶</a></dt> <dd><p>Returns the integer <em>n</em> converted to <em>base</em> as a string with a base marker of <tt class="docutils literal"><span class="pre">'0b'</span></tt>, <tt class="docutils literal"><span class="pre">'0o'</span></tt>, or <tt class="docutils literal"><span class="pre">'0x'</span></tt> if applicable. When <em>base</em> is not 2, 8, 10, or 16, the format is <tt class="docutils literal"><span class="pre">'x#num'</span></tt> where x is the base. If <em>n</em> is not an int object, it is converted with <a class="reference internal" href="#PyNumber_Index" title="PyNumber_Index"><tt class="xref c c-func docutils literal"><span class="pre">PyNumber_Index()</span></tt></a> first.</p> <p class="versionadded"> <span class="versionmodified">New in version 2.6.</span></p> </dd></dl> <dl class="function"> <dt id="PyNumber_AsSsize_t"> Py_ssize_t <tt class="descname">PyNumber_AsSsize_t</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em>, <a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *exc</em><big>)</big><a class="headerlink" href="#PyNumber_AsSsize_t" title="Permalink to this definition">¶</a></dt> <dd><p>Returns <em>o</em> converted to a Py_ssize_t value if <em>o</em> can be interpreted as an integer. If <em>o</em> can be converted to a Python int or long but the attempt to convert to a Py_ssize_t value would raise an <a class="reference internal" href="../library/exceptions.html#exceptions.OverflowError" title="exceptions.OverflowError"><tt class="xref py py-exc docutils literal"><span class="pre">OverflowError</span></tt></a>, then the <em>exc</em> argument is the type of exception that will be raised (usually <a class="reference internal" href="../library/exceptions.html#exceptions.IndexError" title="exceptions.IndexError"><tt class="xref py py-exc docutils literal"><span class="pre">IndexError</span></tt></a> or <a class="reference internal" href="../library/exceptions.html#exceptions.OverflowError" title="exceptions.OverflowError"><tt class="xref py py-exc docutils literal"><span class="pre">OverflowError</span></tt></a>). If <em>exc</em> is <em>NULL</em>, then the exception is cleared and the value is clipped to <em>PY_SSIZE_T_MIN</em> for a negative integer or <em>PY_SSIZE_T_MAX</em> for a positive integer.</p> <p class="versionadded"> <span class="versionmodified">New in version 2.5.</span></p> </dd></dl> <dl class="function"> <dt id="PyIndex_Check"> int <tt class="descname">PyIndex_Check</tt><big>(</big><a class="reference internal" href="structures.html#PyObject" title="PyObject">PyObject</a><em> *o</em><big>)</big><a class="headerlink" href="#PyIndex_Check" title="Permalink to this definition">¶</a></dt> <dd><p>Returns True if <em>o</em> is an index integer (has the nb_index slot of the tp_as_number structure filled in).</p> <p class="versionadded"> <span class="versionmodified">New in version 2.5.</span></p> </dd></dl> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> <p class="topless"><a href="object.html" title="previous chapter">Object Protocol</a></p> <h4>Next topic</h4> <p class="topless"><a href="sequence.html" title="next chapter">Sequence Protocol</a></p> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../bugs.html">Report a Bug</a></li> <li><a href="../_sources/c-api/number.txt" rel="nofollow">Show Source</a></li> </ul> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> Enter search terms or a module, class or function name. </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="sequence.html" title="Sequence Protocol" >next</a> |</li> <li class="right" > <a href="object.html" title="Object Protocol" >previous</a> |</li> <li><img src="../_static/py.png" alt="" style="vertical-align: middle; margin-top: -1px"/></li> <li><a href="http://www.python.org/">Python</a> »</li> <li> <a href="../index.html">Python 2.7.5 documentation</a> » </li> <li><a href="index.html" >Python/C API Reference Manual</a> »</li> <li><a href="abstract.html" >Abstract Objects Layer</a> »</li> </ul> </div> <div class="footer"> © <a href="../copyright.html">Copyright</a> 1990-2019, Python Software Foundation. <br /> The Python Software Foundation is a non-profit corporation. <a href="http://www.python.org/psf/donations/">Please donate.</a> <br /> Last updated on Jul 03, 2019. <a href="../bugs.html">Found a bug</a>? <br /> Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3. </div> </body> </html>