数字协议¶
-
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.
返回减法的结果 o2 从 o1 或
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
对于 o3 会导致非法的内存访问)。
-
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
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 += o2
.
-
PyObject *PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回减法的结果 o2 从 o1 或
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 -= o2
.
-
PyObject *PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回乘法结果 o1 和 o2 或
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 *= o2
.
-
PyObject *PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回上的矩阵乘法结果 o1 和 o2 或
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 @= o2
.3.5 新版功能.
-
PyObject *PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回除法的数学下限 o1 通过 o2 或
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 //= o2
.
-
PyObject *PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回的数学值的合理近似值 o1 除以 o2 或
NULL
失败时。返回值是“近似值”,因为二进制浮点数是近似值;不可能以2为基数表示所有实数。当传递两个整数时,此函数可以返回浮点值。操作已完成 in-place 什么时候? o1 支持它。
-
PyObject *PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回除法的余数 o1 通过 o2 或
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 %= o2
.
-
PyObject *PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Return value: New reference.
见内置功能
pow()
. 退换商品NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 **= o2
当O3是Py_None
或就地变量pow(o1, o2, o3)
否则。如果 o3 将被忽略,通过Py_None
在其位置(通过NULL
对于 o3 会导致非法的内存访问)。
-
PyObject *PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回左移位的结果 o1 通过 o2 关于成功,或
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 <<= o2
.
-
PyObject *PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回右移的结果 o1 通过 o2 关于成功,或
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 >>= o2
.
-
PyObject *PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回的“按位与” o1 和 o2 论成功与否
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 &= o2
.
-
PyObject *PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回的“按位异或” o1 通过 o2 关于成功,或
NULL
失败论。操作已完成 in-place 什么时候? o1 支持它。这相当于python语句o1 ^= o2
.
-
PyObject *PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)¶
- Return value: New reference.
返回的“按位或” o1 和 o2 关于成功,或
NULL
失败论。操作已完成 in-place 什么时候? 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 成功时转换为float对象,或
NULL
失败论。这相当于python表达式float(o)
.
-
PyObject *PyNumber_Index(PyObject *o)¶
- Return value: New reference.
返回 o 成功时转换为python int或
NULL
用一个TypeError
失败时引发异常。在 3.10 版更改: 结果总是具有精确的类型
int
. 以前,结果可能是int
.
-
PyObject *PyNumber_ToBase(PyObject *n, int base)¶
- Return value: New reference.
返回整数 n 已转换为基础 base 作为字符串。这个 base 参数必须是2、8、10或16中的一个。对于基2、8或16,返回的字符串的前缀为
'0b'
,'0o'
或'0x'
,分别。如果 n 不是python int,它是用PyNumber_Index()
第一。
-
Py_ssize_t PyNumber_AsSsize_t(PyObject *o, PyObject *exc)¶
返回 o 如果 o 可以解释为整数。如果调用失败,将引发异常并
-1
返回。如果 o 可以转换为python int,但尝试转换为py-ssize-t值会引发
OverflowError
然后 exc 参数是将引发的异常类型(通常IndexError
或OverflowError
)如果 exc 是NULL
,然后清除异常并将值剪切到PY_SSIZE_T_MIN
对于负整数或PY_SSIZE_T_MAX
对于正整数。