PyNumber_Check
Returns 1
if the object o provides numeric protocols, and false otherwise. This function always succeeds.
Changed in version 3.8: Returns 1
if o is an index integer.
PyNumber_Add
Returns the result of adding o1 and o2, or NULL
on failure. This is the equivalent of the Python expression o1 + o2
.
PyNumber_Subtract
Returns the result of subtracting o2 from o1, or NULL
on failure. This is the equivalent of the Python expression o1 - o2
.
PyNumber_Multiply
Returns the result of multiplying o1 and o2, or NULL
on failure. This is the equivalent of the Python expression o1 * o2
.
PyNumber_MatrixMultiply
Returns the result of matrix multiplication on o1 and o2, or NULL
on failure. This is the equivalent of the Python expression o1 @ o2
.
New in version 3.5.
PyNumber_FloorDivide
Return the floor of o1 divided by o2, or NULL
on failure. This is equivalent to the ?classic? division of integers.
PyNumber_TrueDivide
Return a reasonable approximation for the mathematical value of o1 divided by o2, or NULL
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.
PyNumber_Remainder
Returns the remainder of dividing o1 by o2, or NULL
on failure. This is the equivalent of the Python expression o1 % o2
.
PyNumber_Divmod
See the built-in function divmod()
. Returns NULL
on failure. This is the equivalent of the Python expression divmod(o1, o2)
.
PyNumber_Power
See the built-in function pow()
. Returns NULL
on failure. This is the equivalent of the Python expression pow(o1, o2, o3)
, where o3 is optional. If o3 is to be ignored, pass Py_None
in its place (passing NULL
for o3 would cause an illegal memory access).
PyNumber_Negative
Returns the negation of o on success, or NULL
on failure. This is the equivalent of the Python expression -o
.
PyNumber_Positive
Returns o on success, or NULL
on failure. This is the equivalent of the Python expression +o
.
PyNumber_Absolute
Returns the absolute value of o, or NULL
on failure. This is the equivalent of the Python expression abs(o)
.
PyNumber_Invert
Returns the bitwise negation of o on success, or NULL
on failure. This is the equivalent of the Python expression ~o
.
PyNumber_Lshift
Returns the result of left shifting o1 by o2 on success, or NULL
on failure. This is the equivalent of the Python expression o1 << o2
.
PyNumber_Rshift
Returns the result of right shifting o1 by o2 on success, or NULL
on failure. This is the equivalent of the Python expression o1 >> o2
.
PyNumber_And
Returns the ?bitwise and? of o1 and o2 on success and NULL
on failure. This is the equivalent of the Python expression o1 & o2
.
PyNumber_Xor
Returns the ?bitwise exclusive or? of o1 by o2 on success, or NULL
on failure. This is the equivalent of the Python expression o1 ^ o2
.
PyNumber_Or
Returns the ?bitwise or? of o1 and o2 on success, or NULL
on failure. This is the equivalent of the Python expression o1 | o2
.
PyNumber_InPlaceAdd
Returns the result of adding o1 and o2, or NULL
on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement o1 += o2
.
PyNumber_InPlaceSubtract
Returns the result of subtracting o2 from o1, or NULL
on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement o1 -= o2
.
PyNumber_InPlaceMultiply
Returns the result of multiplying o1 and o2, or NULL
on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement o1 *= o2
.
PyNumber_InPlaceMatrixMultiply
Returns the result of matrix multiplication on o1 and o2, or NULL
on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement o1 @= o2
.
New in version 3.5.
PyNumber_InPlaceFloorDivide
Returns the mathematical floor of dividing o1 by o2, or NULL
on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement o1 //= o2
.
PyNumber_InPlaceTrueDivide
Return a reasonable approximation for the mathematical value of o1 divided by o2, or NULL
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 in-place when o1 supports it.
PyNumber_InPlaceRemainder
Returns the remainder of dividing o1 by o2, or NULL
on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement o1 %= o2
.
PyNumber_InPlacePower
See the built-in function pow()
. Returns NULL
on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement o1 **= o2
when o3 is Py_None
, or an in-place variant of pow(o1, o2, o3)
otherwise. If o3 is to be ignored, pass Py_None
in its place (passing NULL
for o3 would cause an illegal memory access).
PyNumber_InPlaceLshift
Returns the result of left shifting 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
.
PyNumber_InPlaceRshift
Returns the result of right shifting 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
.
PyNumber_InPlaceAnd
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
.
PyNumber_InPlaceXor
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
.
PyNumber_InPlaceOr
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
.
PyNumber_Long
Returns the o converted to an integer object on success, or NULL
on failure. This is the equivalent of the Python expression int(o)
.
PyNumber_Float
Returns the o converted to a float object on success, or NULL
on failure. This is the equivalent of the Python expression float(o)
.
PyNumber_Index
Returns the o converted to a Python int on success or NULL
with a TypeError
exception raised on failure.
PyNumber_ToBase
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 with PyNumber_Index()
first.
PyNumber_AsSsize_t
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 (usually IndexError
or OverflowError
). 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.
PyIndex_Check
Returns 1
if o is an index integer (has the nb_index slot of the tp_as_number structure filled in), and 0
otherwise. This function always succeeds.