Номер Протокол

int PyNumber_Check(PyObject *o)
Часть Стабильный ABI.

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

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

PyObject *PyNumber_Add(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Subtract(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Multiply(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI с версии 3.7.

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

Added in version 3.5.

PyObject *PyNumber_FloorDivide(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_TrueDivide(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Remainder(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Divmod(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Negative(PyObject *o)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Positive(PyObject *o)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Absolute(PyObject *o)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Invert(PyObject *o)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Lshift(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Rshift(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_And(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Xor(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Or(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI с версии 3.7.

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

Added in version 3.5.

PyObject *PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

См. встроенную функцию pow(). Возвращает NULL при неудаче. Операция выполняется in-place, если 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)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Long(PyObject *o)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Float(PyObject *o)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

PyObject *PyNumber_Index(PyObject *o)
Возвращаемое значение: Новая ссылка. Часть Стабильный ABI.

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

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

PyObject *PyNumber_ToBase(PyObject *n, int base)
Возвращаемое значение: Новая ссылка. Часть Стабильный 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)
Часть Стабильный 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)
Часть Стабильный ABI с версии 3.8.

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