Протокол нумерации

int PyNumber_Check(PyObject *o)
Part of the Стабильный ABI.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PyObject *PyNumber_ToBase(PyObject *n, int base)
Возвращаемое значение: Новая ссылка. Part of the Стабильный ABI.

Возвращает целое число n, преобразованное в базовое значение base, в виде строки. Аргумент base должен быть одним из 2, 8, 10 или 16. Для значений по основанию 2, 8 или 16 возвращаемая строка имеет префикс в виде базового маркера '0b', '0o', или '0x' соответственно. Если n не является значением int в Python, оно сначала преобразуется с помощью PyNumber_Index().

Py_ssize_t PyNumber_AsSsize_t(PyObject *o, PyObject *exc)
Part of the Стабильный ABI.

Возвращает значение o, преобразованное в значение a 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 Стабильный ABI since version 3.8.

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

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