숫자 프로토콜¶
-
PyObject*
PyNumber_Add(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the result of adding o1 and o2, or
NULLon failure. This is the equivalent of the Python expressiono1 + o2.
-
PyObject*
PyNumber_Subtract(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the result of subtracting o2 from o1, or
NULLon failure. This is the equivalent of the Python expressiono1 - o2.
-
PyObject*
PyNumber_Multiply(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the result of multiplying o1 and o2, or
NULLon failure. This is the equivalent of the Python expressiono1 * o2.
-
PyObject*
PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the result of matrix multiplication on o1 and o2, or
NULLon failure. This is the equivalent of the Python expressiono1 @ o2.버전 3.5에 추가.
-
PyObject*
PyNumber_FloorDivide(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Return the floor of o1 divided by o2, or
NULLon failure. This is equivalent to the “classic” division of integers.
-
PyObject*
PyNumber_TrueDivide(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Return a reasonable approximation for the mathematical value of o1 divided by o2, or
NULLon 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.
-
PyObject*
PyNumber_Remainder(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the remainder of dividing o1 by o2, or
NULLon failure. This is the equivalent of the Python expressiono1 % o2.
-
PyObject*
PyNumber_Divmod(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
See the built-in function
divmod(). ReturnsNULLon failure. This is the equivalent of the Python expressiondivmod(o1, o2).
-
PyObject*
PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)¶ - Return value: New reference.
See the built-in function
pow(). ReturnsNULLon failure. This is the equivalent of the Python expressionpow(o1, o2, o3), where o3 is optional. If o3 is to be ignored, passPy_Nonein its place (passingNULLfor o3 would cause an illegal memory access).
-
PyObject*
PyNumber_Negative(PyObject *o)¶ - Return value: New reference.
Returns the negation of o on success, or
NULLon failure. This is the equivalent of the Python expression-o.
-
PyObject*
PyNumber_Positive(PyObject *o)¶ - Return value: New reference.
Returns o on success, or
NULLon failure. This is the equivalent of the Python expression+o.
-
PyObject*
PyNumber_Absolute(PyObject *o)¶ - Return value: New reference.
Returns the absolute value of o, or
NULLon failure. This is the equivalent of the Python expressionabs(o).
-
PyObject*
PyNumber_Invert(PyObject *o)¶ - Return value: New reference.
Returns the bitwise negation of o on success, or
NULLon failure. This is the equivalent of the Python expression~o.
-
PyObject*
PyNumber_Lshift(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the result of left shifting o1 by o2 on success, or
NULLon failure. This is the equivalent of the Python expressiono1 << o2.
-
PyObject*
PyNumber_Rshift(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the result of right shifting o1 by o2 on success, or
NULLon failure. This is the equivalent of the Python expressiono1 >> o2.
-
PyObject*
PyNumber_And(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the “bitwise and” of o1 and o2 on success and
NULLon failure. This is the equivalent of the Python expressiono1 & o2.
-
PyObject*
PyNumber_Xor(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the “bitwise exclusive or” of o1 by o2 on success, or
NULLon failure. This is the equivalent of the Python expressiono1 ^ o2.
-
PyObject*
PyNumber_Or(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the “bitwise or” of o1 and o2 on success, or
NULLon failure. This is the equivalent of the Python expressiono1 | o2.
-
PyObject*
PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the result of adding o1 and o2, or
NULLon 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)¶ - Return value: New reference.
Returns the result of subtracting o2 from o1, or
NULLon 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)¶ - Return value: New reference.
Returns the result of multiplying o1 and o2, or
NULLon 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)¶ - Return value: New reference.
Returns the result of matrix multiplication on o1 and o2, or
NULLon failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statemento1 @= o2.버전 3.5에 추가.
-
PyObject*
PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the mathematical floor of dividing o1 by o2, or
NULLon 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)¶ - Return value: New reference.
Return a reasonable approximation for the mathematical value of o1 divided by o2, or
NULLon 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.
-
PyObject*
PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the remainder of dividing o1 by o2, or
NULLon 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)¶ - Return value: New reference.
See the built-in function
pow(). ReturnsNULLon failure. The operation is done in-place when o1 supports it. This is the equivalent of the Python statemento1 **= o2when o3 isPy_None, or an in-place variant ofpow(o1, o2, o3)otherwise. If o3 is to be ignored, passPy_Nonein its place (passingNULLfor o3 would cause an illegal memory access).
-
PyObject*
PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Returns the result of left shifting o1 by o2 on success, or
NULLon 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)¶ - Return value: New reference.
Returns the result of right shifting o1 by o2 on success, or
NULLon 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)¶ - Return value: New reference.
Returns the “bitwise and” of o1 and o2 on success and
NULLon 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)¶ - Return value: New reference.
Returns the “bitwise exclusive or” of o1 by o2 on success, or
NULLon 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)¶ - Return value: New reference.
Returns the “bitwise or” of o1 and o2 on success, or
NULLon 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)¶ - Return value: New reference.
Returns the o converted to an integer object on success, or
NULLon failure. This is the equivalent of the Python expressionint(o).
-
PyObject*
PyNumber_Float(PyObject *o)¶ - Return value: New reference.
Returns the o converted to a float object on success, or
NULLon failure. This is the equivalent of the Python expressionfloat(o).
-
PyObject*
PyNumber_Index(PyObject *o)¶ - Return value: New reference.
Returns the o converted to a Python int on success or
NULLwith aTypeErrorexception raised on failure.
-
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이 파이썬 int가 아니면, 먼저PyNumber_Index()로 변환됩니다.
-
Py_ssize_t
PyNumber_AsSsize_t(PyObject *o, PyObject *exc)¶ o가 정수로 해석될 수 있으면, o를 Py_ssize_t 값으로 변환하여 반환합니다. 호출이 실패하면, 예외가 발생하고
-1이 반환됩니다.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 (usuallyIndexErrororOverflowError). If exc isNULL, then the exception is cleared and the value is clipped toPY_SSIZE_T_MINfor a negative integer orPY_SSIZE_T_MAXfor a positive integer.
