数字协议¶
-
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 支持时,这个运算完成后将值赋给 o1。 等价于Python中的语句
o1 %= o2
。
-
PyObject*
PyNumber_InPlacePower
(PyObject *o1, PyObject *o2, PyObject *o3)¶ - Return value: New reference.
请参阅内置函数
pow()
。 如果失败,返回 NULL。当 o1 支持时,这个运算完成后将值赋给 o1。等价价于 Python 中的表达式pow(o1, o2, o3)
,其中 o3 是可选的。如果缺少 o3,则传入Py_None
作为代替(如果传入 NULL 会导致非法内存访问)。如果 o3 是Py_None
, 则该函数等价于 Python 中的语句o1 **= o2
。
-
PyObject*
PyNumber_InPlaceLshift
(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
返回 o1 左移 o2 个比特后的结果,如果失败,返回 NULL 。当 o1 支持时,这个运算完成后将值赋给 o1。 等价于Python中的语句
o1 <<= o2
。
-
PyObject*
PyNumber_InPlaceRshift
(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
返回 o1 右移 o2 个比特后的结果,如果失败,返回 NULL 。当 o1 支持时,这个运算完成后将值赋给 o1。 等价于Python中的语句
o1 >>= o2
。
-
PyObject*
PyNumber_InPlaceAnd
(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the "bitwise and" of o1 and o2 on success and NULL on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement
o1 &= o2
.
-
PyObject*
PyNumber_InPlaceXor
(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the "bitwise exclusive or" of o1 by o2 on success, or NULL on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement
o1 ^= o2
.
-
PyObject*
PyNumber_InPlaceOr
(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the "bitwise or" of o1 and o2 on success, or NULL on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement
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.
Returns the o converted to a Python int on success or NULL with a
TypeError
exception raised on failure.
-
PyObject*
PyNumber_ToBase
(PyObject *n, int base)¶ - Return value: New reference.
Returns the integer n converted to base base as a string. The base argument must be one of 2, 8, 10, or 16. For base 2, 8, or 16, the returned string is prefixed with a base marker of
'0b'
,'0o'
, or'0x'
, respectively. If n is not a Python int, it is converted withPyNumber_Index()
first.
-
Py_ssize_t
PyNumber_AsSsize_t
(PyObject *o, PyObject *exc)¶ Returns o converted to a Py_ssize_t value if o can be interpreted as an integer. If the call fails, an exception is raised and
-1
is returned.If o can be converted to a Python int but the attempt to convert to a Py_ssize_t value would raise an
OverflowError
, then the exc argument is the type of exception that will be raised (usuallyIndexError
orOverflowError
). If exc is NULL, then the exception is cleared and the value is clipped to PY_SSIZE_T_MIN for a negative integer or PY_SSIZE_T_MAX for a positive integer.