Номерной протокол

int PyNumber_Check(PyObject *o)
Part of the Stable ABI.

Возвращает 1, если объект o предоставляет числовые протоколы, и false в противном случае. Эта функция всегда успешна.

Изменено в версии 3.8: Возвращает 1, если o - целое число с индексом.

PyObject *PyNumber_Add(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат сложения o1 и o2, или NULL при неудаче. Это эквивалент выражения Python o1 + o2.

PyObject *PyNumber_Subtract(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат вычитания o2 из o1, или NULL при неудаче. Это эквивалент выражения Python o1 - o2.

PyObject *PyNumber_Multiply(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат умножения o1 и o2, или NULL при неудаче. Это эквивалент выражения Python o1 * o2.

PyObject *PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI since version 3.7.

Возвращает результат матричного умножения на o1 и o2, или NULL при неудаче. Это эквивалентно выражению Python o1 @ o2.

Добавлено в версии 3.5.

PyObject *PyNumber_FloorDivide(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает значение o1, деленное на o2, или NULL при неудаче. Это эквивалент выражения Python o1 // o2.

PyObject *PyNumber_TrueDivide(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает разумное приближение для математического значения o1, деленного на o2, или NULL при неудаче. Возвращаемое значение является «приблизительным», потому что двоичные числа с плавающей точкой являются приблизительными; невозможно представить все действительные числа по основанию два. Эта функция может возвращать значение с плавающей точкой, если ей переданы два целых числа. Это эквивалентно выражению языка Python o1 / o2.

PyObject *PyNumber_Remainder(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает остаток от деления o1 на o2, или NULL при неудаче. Это эквивалент выражения Python o1 % o2.

PyObject *PyNumber_Divmod(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

См. встроенную функцию divmod(). Возвращает NULL при неудаче. Это эквивалент выражения Python divmod(o1, o2).

PyObject *PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)
Return value: New reference. Part of the Stable ABI.

См. встроенную функцию pow(). Возвращает NULL при неудаче. Это эквивалент выражения Python pow(o1, o2, o3), где o3 является необязательным. Если o3 нужно игнорировать, передайте вместо него Py_None (передача NULL для o3 приведет к незаконному доступу к памяти).

PyObject *PyNumber_Negative(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Возвращает отрицание o в случае успеха или NULL в случае неудачи. Это эквивалентно выражению Python -o.

PyObject *PyNumber_Positive(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Возвращает o в случае успеха или NULL в случае неудачи. Это эквивалент выражения Python +o.

PyObject *PyNumber_Absolute(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Возвращает абсолютное значение o, или NULL при неудаче. Это эквивалент выражения Python abs(o).

PyObject *PyNumber_Invert(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Возвращает побитовое отрицание o в случае успеха или NULL в случае неудачи. Это эквивалентно выражению Python ~o.

PyObject *PyNumber_Lshift(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат сдвига влево o1 на o2 в случае успеха, или NULL в случае неудачи. Это эквивалентно выражению Python o1 << o2.

PyObject *PyNumber_Rshift(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат сдвига вправо o1 на o2 в случае успеха, или NULL в случае неудачи. Это эквивалентно выражению Python o1 >> o2.

PyObject *PyNumber_And(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает «побитовое и» из o1 и o2 в случае успеха и NULL в случае неудачи. Это эквивалентно выражению Python o1 & o2.

PyObject *PyNumber_Xor(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает «побитовое исключающее или» из o1 в o2 в случае успеха, или NULL в случае неудачи. Это эквивалент выражения Python o1 ^ o2.

PyObject *PyNumber_Or(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает «побитовое или» из o1 и o2 при успехе, или NULL при неудаче. Это эквивалентно выражению Python o1 | o2.

PyObject *PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат сложения o1 и o2, или NULL при неудаче. Операция выполняется вместе, если o1 поддерживает ее. Это эквивалент оператора Python o1 += o2.

PyObject *PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат вычитания o2 из o1, или NULL при неудаче. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 -= o2.

PyObject *PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат умножения o1 и o2, или NULL при неудаче. Операция выполняется вместе, если o1 поддерживает ее. Это эквивалент оператора Python o1 *= o2.

PyObject *PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI since version 3.7.

Возвращает результат матричного умножения на o1 и o2, или NULL при неудаче. Операция выполняется in-place, если o1 поддерживает ее. Это эквивалент оператора Python o1 @= o2.

Добавлено в версии 3.5.

PyObject *PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает математический этаж деления o1 на o2, или NULL при неудаче. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 //= o2.

PyObject *PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает разумное приближение для математического значения o1, деленного на o2, или NULL при неудаче. Возвращаемое значение является «приблизительным», потому что двоичные числа с плавающей точкой являются приблизительными; невозможно представить все действительные числа по основанию два. Эта функция может возвращать значение с плавающей точкой, когда ей передаются два целых числа. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 /= o2.

PyObject *PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает остаток от деления o1 на o2, или NULL при неудаче. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 %= o2.

PyObject *PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)
Return value: New reference. Part of the Stable ABI.

См. встроенную функцию pow(). Возвращает NULL при неудаче. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 **= o2, когда o3 равно Py_None, или in-place вариант pow(o1, o2, o3) в противном случае. Если o3 нужно игнорировать, передайте вместо него Py_None (передача NULL для o3 приведет к незаконному доступу к памяти).

PyObject *PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат сдвига влево o1 на o2 в случае успеха, или NULL в случае неудачи. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 <<= o2.

PyObject *PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает результат сдвига вправо o1 на o2 в случае успеха, или NULL в случае неудачи. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 >>= o2.

PyObject *PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает «побитовое и» из o1 и o2 при успехе и NULL при неудаче. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 &= o2.

PyObject *PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает «побитовое исключающее или» из o1 в o2 в случае успеха, или NULL в случае неудачи. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 ^= o2.

PyObject *PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Возвращает «побитовое или» из o1 и o2 в случае успеха, или NULL в случае неудачи. Операция выполняется на месте, если o1 поддерживает ее. Это эквивалент оператора Python o1 |= o2.

PyObject *PyNumber_Long(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Возвращает o, преобразованное в целочисленный объект в случае успеха, или NULL в случае неудачи. Это эквивалентно выражению Python int(o).

PyObject *PyNumber_Float(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Возвращает o, преобразованное в объект float в случае успеха, или NULL в случае неудачи. Это эквивалентно выражению Python float(o).

PyObject *PyNumber_Index(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Возвращает o, преобразованное в Python int, в случае успеха или NULL с исключением TypeError, вызванным в случае неудачи.

Изменено в версии 3.10: Результат всегда имеет точный тип int. Ранее результат мог быть экземпляром подкласса int.

PyObject *PyNumber_ToBase(PyObject *n, int base)
Return value: New reference. Part of the Stable ABI.

Возвращает целое число 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)
Part of the Stable ABI.

Возвращает o, преобразованное в значение Py_ssize_t, если o может быть интерпретировано как целое число. Если вызов не удался, возбуждается исключение и возвращается -1.

Если o может быть преобразовано в Python int, но попытка преобразования в значение Py_ssize_t вызовет ошибку OverflowError, то аргумент exc - это тип исключения, которое будет вызвано (обычно IndexError или OverflowError). Если exc равен NULL, то исключение снимается и значение обрезается до PY_SSIZE_T_MIN для отрицательного целого числа или PY_SSIZE_T_MAX для положительного целого числа.

int PyIndex_Check(PyObject *o)
Part of the Stable ABI since version 3.8.

Возвращает 1, если o является индексным целым (имеет заполненный слот nb_index структуры tp_as_number), и 0 в противном случае. Эта функция всегда успешна.

Вернуться на верх