Number Protocol¶
-
int PyNumber_Check(PyObject *o)¶
- Bir parçası Kararlı ABI.
Returns
1
if the object o provides numeric protocols, and false otherwise. This function always succeeds.3.8 sürümünde değişti: Returns
1
if o is an index integer.
-
PyObject *PyNumber_Add(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the result of adding o1 and o2, or
NULL
on failure. This is the equivalent of the Python expressiono1 + o2
.
-
PyObject *PyNumber_Subtract(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the result of subtracting o2 from o1, or
NULL
on failure. This is the equivalent of the Python expressiono1 - o2
.
-
PyObject *PyNumber_Multiply(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the result of multiplying o1 and o2, or
NULL
on failure. This is the equivalent of the Python expressiono1 * o2
.
-
PyObject *PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI 3.7 sürümünden beri.
Returns the result of matrix multiplication on o1 and o2, or
NULL
on failure. This is the equivalent of the Python expressiono1 @ o2
.Added in version 3.5.
-
PyObject *PyNumber_FloorDivide(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Return the floor of o1 divided by o2, or
NULL
on failure. This is the equivalent of the Python expressiono1 // o2
.
-
PyObject *PyNumber_TrueDivide(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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. This is the equivalent of the Python expressiono1 / o2
.
-
PyObject *PyNumber_Remainder(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the remainder of dividing o1 by o2, or
NULL
on failure. This is the equivalent of the Python expressiono1 % o2
.
-
PyObject *PyNumber_Divmod(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
See the built-in function
divmod()
. ReturnsNULL
on failure. This is the equivalent of the Python expressiondivmod(o1, o2)
.
-
PyObject *PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
See the built-in function
pow()
. ReturnsNULL
on failure. This is the equivalent of the Python expressionpow(o1, o2, o3)
, where o3 is optional. If o3 is to be ignored, passPy_None
in its place (passingNULL
for o3 would cause an illegal memory access).
-
PyObject *PyNumber_Negative(PyObject *o)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the negation of o on success, or
NULL
on failure. This is the equivalent of the Python expression-o
.
-
PyObject *PyNumber_Positive(PyObject *o)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns o on success, or
NULL
on failure. This is the equivalent of the Python expression+o
.
-
PyObject *PyNumber_Absolute(PyObject *o)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the absolute value of o, or
NULL
on failure. This is the equivalent of the Python expressionabs(o)
.
-
PyObject *PyNumber_Invert(PyObject *o)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the bitwise negation of o on success, or
NULL
on failure. This is the equivalent of the Python expression~o
.
-
PyObject *PyNumber_Lshift(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the result of left shifting o1 by o2 on success, or
NULL
on failure. This is the equivalent of the Python expressiono1 << o2
.
-
PyObject *PyNumber_Rshift(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the result of right shifting o1 by o2 on success, or
NULL
on failure. This is the equivalent of the Python expressiono1 >> o2
.
-
PyObject *PyNumber_And(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the “bitwise and” of o1 and o2 on success and
NULL
on failure. This is the equivalent of the Python expressiono1 & o2
.
-
PyObject *PyNumber_Xor(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the “bitwise exclusive or” of o1 by o2 on success, or
NULL
on failure. This is the equivalent of the Python expressiono1 ^ o2
.
-
PyObject *PyNumber_Or(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the “bitwise or” of o1 and o2 on success, or
NULL
on failure. This is the equivalent of the Python expressiono1 | o2
.
-
PyObject *PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 += o2
.
-
PyObject *PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 -= o2
.
-
PyObject *PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 *= o2
.
-
PyObject *PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI 3.7 sürümünden beri.
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 statemento1 @= o2
.Added in version 3.5.
-
PyObject *PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 //= o2
.
-
PyObject *PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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. This is the equivalent of the Python statemento1 /= o2
.
-
PyObject *PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 %= o2
.
-
PyObject *PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
See the built-in function
pow()
. ReturnsNULL
on failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statemento1 **= o2
when o3 isPy_None
, or an in-place variant ofpow(o1, o2, o3)
otherwise. If o3 is to be ignored, passPy_None
in its place (passingNULL
for o3 would cause an illegal memory access).
-
PyObject *PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 <<= o2
.
-
PyObject *PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 >>= o2
.
-
PyObject *PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 &= o2
.
-
PyObject *PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 ^= o2
.
-
PyObject *PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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 statemento1 |= o2
.
-
PyObject *PyNumber_Long(PyObject *o)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the o converted to an integer object on success, or
NULL
on failure. This is the equivalent of the Python expressionint(o)
.
-
PyObject *PyNumber_Float(PyObject *o)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the o converted to a float object on success, or
NULL
on failure. This is the equivalent of the Python expressionfloat(o)
.
-
PyObject *PyNumber_Index(PyObject *o)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
Returns the o converted to a Python int on success or
NULL
with aTypeError
exception raised on failure.3.10 sürümünde değişti: The result always has exact type
int
. Previously, the result could have been an instance of a subclass ofint
.
-
PyObject *PyNumber_ToBase(PyObject *n, int base)¶
- Döndürdüğü değer: Yeni referans. Bir parçası Kararlı ABI.
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)¶
- Bir parçası Kararlı ABI.
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 anOverflowError
, then the exc argument is the type of exception that will be raised (usuallyIndexError
orOverflowError
). If exc isNULL
, then the exception is cleared and the value is clipped toPY_SSIZE_T_MIN
for a negative integer orPY_SSIZE_T_MAX
for a positive integer.
-
int PyIndex_Check(PyObject *o)¶
- Bir parçası Kararlı ABI 3.8 sürümünden beri.
Returns
1
if o is an index integer (has thenb_index
slot of thetp_as_number
structure filled in), and0
otherwise. This function always succeeds.