數字協議?
-
PyObject*
PyNumber_Add(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 、o2 相加的結果,如果失敗,返回 NULL 。等價于 Python 中的表達式
o1 + o2。
-
PyObject*
PyNumber_Subtract(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 減去 o2 的結果,如果失敗,返回
NULL。等價于Python中的表達式o1 - o2。
-
PyObject*
PyNumber_Multiply(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 、 o2 相乘的結果,如果失敗,返回
NULL。等價于Python中的表達式o1 * o2。
-
PyObject*
PyNumber_MatrixMultiply(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 、o2 做矩陣乘法的結果,如果失敗,返回
NULL。等價于Python中的表達式o1 @ o2。3.5 新版功能.
-
PyObject*
PyNumber_FloorDivide(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 除以 o2 的向下取整后的結果,如果失敗,返回
NULL。等價于“傳統”的整數除法。
-
PyObject*
PyNumber_TrueDivide(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 除以 o2 的一個合理的近似值,如果失敗,返回
NULL。這個值是近似的,因為二進制浮點數是一個近似值,它不可能表示出以2為基數的所有實數。這個函數返回兩個整數相除得到的浮點數。
-
PyObject*
PyNumber_Remainder(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 除以 o2 得到的余數,如果失敗,返回
NULL。等價于Python中的表達式o1 % o2。
-
PyObject*
PyNumber_Divmod(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
參考內置函數
divmod()。如果失敗,返回NULL。等價于Python表達式divmod(o1, o2)。
-
PyObject*
PyNumber_Power(PyObject?*o1, PyObject?*o2, PyObject?*o3)? - Return value: New reference.
請參閱內置函數
pow()。 如果失敗,返回NULL。 等價于 Python 中的表達式pow(o1, o2, o3),其中 o3 是可選的。如果要忽略 o3,則需傳入Py_None作為代替(如果傳入NULL會導致非法內存訪問)。
-
PyObject*
PyNumber_Negative(PyObject?*o)? - Return value: New reference.
返回 o 的負值,如果失敗,返回
NULL。等價于 Python 表達式-o。
-
PyObject*
PyNumber_Positive(PyObject?*o)? - Return value: New reference.
返回 o,如果失敗,返回
NULL。等價于 Python 表達式+o。
-
PyObject*
PyNumber_Absolute(PyObject?*o)? - Return value: New reference.
返回 o 的絕對值,如果失敗,返回
NULL。等價于 Python 表達式abs(o)。
-
PyObject*
PyNumber_Invert(PyObject?*o)? - Return value: New reference.
返回 o 的按位取反后的結果,如果失敗,返回
NULL。等價于 Python 表達式~o。
-
PyObject*
PyNumber_Lshift(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 左移 o2 個比特后的結果,如果失敗,返回
NULL。等價于 Python 表達式o1 << o2。
-
PyObject*
PyNumber_Rshift(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 右移 o2 個比特后的結果,如果失敗,返回
NULL。等價于 Python 表達式o1 >> o2。
-
PyObject*
PyNumber_And(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 和 o2 “按位與”的結果,如果失敗,返回
NULL。等價于 Python 表達式o1 & o2。
-
PyObject*
PyNumber_Xor(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 和 o2 “按位異或”的結果,如果失敗,返回
NULL。等價于Python中的表達式o1 ^o2。
-
PyObject*
PyNumber_Or(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 和 o2 “按位或”的結果,如果失敗,返回
NULL。等價于 Python 表達式o1 | o2。
-
PyObject*
PyNumber_InPlaceAdd(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 、o2 相加的結果,如果失敗,返回 NULL 。當 o1 支持時,這個操作直接將值賦給 o1。 等價于 Python 語句
o1 + o2。
-
PyObject*
PyNumber_InPlaceSubtract(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 、o2 相減的結果,如果失敗,返回
NULL。當 o1 支持時,這個運算完成后將值賦給 o1 。 等價于 Python語句o1 -= o2。
-
PyObject*
PyNumber_InPlaceMultiply(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 、o2*相乘的結果,如果失敗,返回 ``NULL`` 。當 *o1 支持時,這個運算完成后將值賦給 o1。 等價于 Python 語句
o1 += o2。
-
PyObject*
PyNumber_InPlaceMatrixMultiply(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 、o2 做矩陣乘法后的結果,如果失敗,返回
NULL。當 o1 支持時,這個運算完成后將值賦給 o1。 等價于 Python 語句o1 @= o2。3.5 新版功能.
-
PyObject*
PyNumber_InPlaceFloorDivide(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 除以 o2 后向下取整的結果,如果失敗,返回
NULL。當 o1 支持時,這個運算完成后將值賦給 o1。 等價于 Python 語句o1 //= o2。
-
PyObject*
PyNumber_InPlaceTrueDivide(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 除以 o2 的一個合理的近似值,如果失敗,返回
NULL。這個值是近似的,因為二進制浮點數是一個近似值,不可能以2為基數來表示出所有實數。這個函數返回兩個整數相除得到的浮點數。當 o1 支持時,這個運算完成后將值賦給 o1。
-
PyObject*
PyNumber_InPlaceRemainder(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 除以 o2 得到的余數,如果失敗,返回
NULL。當 o1 支持時,這個運算直接使用它儲存結果。 等價于 Python 語句o1 %= o2。
-
PyObject*
PyNumber_InPlacePower(PyObject?*o1, PyObject?*o2, PyObject?*o3)? - Return value: New reference.
請參閱內置函數
pow()。 如果失敗,返回NULL。當 o1 支持時,這個運算直接使用它儲存結果。當 o3 是Py_None時,等價于 Python 語句o1 **= o2;否則等價于在原來位置儲存結果的pow(o1, o2, o3)。如果要忽略 o3,則需傳入Py_None(傳入NULL會導致非法內存訪問)。
-
PyObject*
PyNumber_InPlaceLshift(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 左移 o2 個比特后的結果,如果失敗,返回
NULL。當 o1 支持時,這個運算直接使用它儲存結果。 等價于 Python 語句o1 <<= o2。
-
PyObject*
PyNumber_InPlaceRshift(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
返回 o1 右移 o2 個比特后的結果,如果失敗,返回
NULL。當 o1 支持時,這個運算直接使用它儲存結果。 等價于 Python 語句o1 >>= o2。
-
PyObject*
PyNumber_InPlaceAnd(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
成功時返回 o1 和 o2 "按位與" 的結果,失敗時返回
NULL。 在 o1 支持的前提下該操作將 原地 執行。 等價與 Python 語句o1 &= o2。
-
PyObject*
PyNumber_InPlaceXor(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
成功時返回 o1 和 o2 "按位異或的結果,失敗時返回
NULL。 在 o1 支持的前提下該操作將 原地 執行。 等價與 Python 語句o1 ^= o2。
-
PyObject*
PyNumber_InPlaceOr(PyObject?*o1, PyObject?*o2)? - Return value: New reference.
成功時返回 o1 和 o2 "按位或" 的結果,失敗時返回
NULL。 在 o1 支持的前提下該操作將 原地 執行。 等價于 Python 語句o1 |= o2。
-
PyObject*
PyNumber_Long(PyObject?*o)? - Return value: New reference.
成功時返回 o 換為整數對象或的結果,失敗時返回
NULL。 等價于 Python 表達式int(o)。
-
PyObject*
PyNumber_Float(PyObject?*o)? - Return value: New reference.
成功時返回 o 轉換為浮點對象后的結果,失敗時返回
NULL。 等價于 Python 表達式float(o)。
-
PyObject*
PyNumber_Index(PyObject?*o)? - Return value: New reference.
成功時返回 o 轉換為 Python int 類型后的結果,失敗時返回
NULL并引發TypeError異常。
-
PyObject*
PyNumber_ToBase(PyObject?*n, int?base)? - Return value: New reference.
返回整數 n 轉換成以 base 為基數的字符串后的結果。這個 base 參數必須是 2,8,10 或者 16 。對于基數 2,8,或 16 ,返回的字符串將分別加上基數標識
'0b','0o', or'0x'。如果 n 不是 Python 中的整數 int 類型,就先通過PyNumber_Index()將它轉換成整數類型。
-
Py_ssize_t
PyNumber_AsSsize_t(PyObject?*o, PyObject?*exc)? 如果 o 是一個整數類型的解釋型,返回 o 轉換成一個 Py_ssize_t 值項后的結果。如果調用失敗,返回
-1并引發異常。如果 o 可以被轉換為 Python int 類型但嘗試轉換為 Py_ssize_t 值則會引發
OverflowError,這時 exc 參數為將被引發的異常類型 (通常是IndexError或OverflowError)。 如果 exc 為NULL,則異常會被清除并且值會被剪切到負整數PY_SSIZE_T_MIN或正整數PY_SSIZE_T_MAX。
