Spec-Zone.ru › Python 3.11

Целые числа (Integer Objects)

Все целые числа реализуются как объекты «long» произвольного размера.

В случае ошибки большинство PyLong_As* API возвращают (return type)-1, которые нельзя отличить от числа. Используйте PyErr_Occurred() для разграничения.

type PyLongObject
Часть Ограниченного API (как неявный структуру).

Этот подтип PyObject представляет собой объект целого числа Python.

PyTypeObject PyLong_Type
Часть Стабильного ABI.

Этот экземпляр PyTypeObject представляет собой тип целых чисел Python. Это тот же объект, что и int в слое Python.

int PyLong_Check(PyObject *p)

Возвращает true, если аргумент является PyLongObject или подтипом PyLongObject. Эта функция всегда выполняется успешно.

int PyLong_CheckExact(PyObject *p)

Возвращает true, если аргумент является PyLongObject, но не является подтипом PyLongObject. Эта функция всегда выполняется успешно.

PyObject *PyLong_FromLong(long v)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Возвращает новый объект PyLongObject из v или NULL при ошибке.

Текущая реализация хранит массив целых чисел для всех целых чисел в диапазоне от -5 до 256. Когда вы создаете целое число в этом диапазоне, вы фактически просто получаете ссылку на существующий объект.

PyObject *PyLong_FromUnsignedLong(unsigned long v)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Возвращает новый объект PyLongObject из C unsigned long или NULL при ошибке.

PyObject *PyLong_FromSsize_t(Py_ssize_t v)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Возвращает новый объект PyLongObject из C Py_ssize_t или NULL при ошибке.

PyObject *PyLong_FromSize_t(size_t v)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Возвращает новый объект PyLongObject из C size_t, или NULL при ошибке.

PyObject *PyLong_FromLongLong(long long v)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Возвращает новый объект PyLongObject из C long long или NULL при ошибке.

PyObject *PyLong_FromUnsignedLongLong(unsigned long long v)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Возвращает новый объект PyLongObject из C unsigned long long или NULL при ошибке.

PyObject *PyLong_FromDouble(double v)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Возвращает новый объект PyLongObject из целой части v или NULL при ошибке.

PyObject *PyLong_FromString(const char *str, char **pend, int base)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Возвращает новый PyLongObject на основе строкового значения в str, интерпретируемого по основанию в base. Если pend не NULL, *pend будет указывать на первый символ в str, следующий за представлением числа. Если base равно 0, str интерпретируется с использованием определения литералов целых чисел; в этом случае ведущие нули в не-нулевом десятичном числе вызывают исключение ValueError. Если base не равно 0, оно должно быть между 2 и 36, включительно. Ведущие пробелы и одиночные подчеркивания после спецификатора основания и между цифрами игнорируются. Если нет цифр, будет вызвано исключение ValueError.

См. также

Методы Python int.to_bytes() и int.from_bytes() для преобразования PyLongObject в/из массив байтов в основании 256. Вы можете вызвать их из C, используя PyObject_CallMethod().

PyObject *PyLong_FromUnicodeObject(PyObject *u, int base)
Значение возврата: Новая ссылка.

Преобразовать последовательность Unicode-цифр в строке u в значение целого числа Python.

Новое в версии 3.3.

PyObject *PyLong_FromVoidPtr(void *p)
Значение возврата: Новая ссылка. Часть Стабильного ABI.

Создает целое число Python из указателя p. Значение указателя можно получить из результата, используя PyLong_AsVoidPtr().

long PyLong_AsLong(PyObject *obj)
Часть Стабильного ABI.

Возвращает C long представление obj. Если obj не является экземпляром PyLongObject, сначала вызывается его метод __index__() (если он присутствует) для его преобразования в PyLongObject.

Вызывает OverflowError, если значение obj выходит за пределы диапазона для long.

Возвращает -1 при ошибке. Используйте PyErr_Occurred() для разграничения.

Изменено в версии 3.8: Используйте __index__(), если доступно.

Изменено в версии 3.10: Эта функция больше не будет использовать __int__().

long PyLong_AsLongAndOverflow(PyObject *obj, int *overflow)
Часть Стабильной ABI.

Возвращает C long представление obj. Если obj не является экземпляром PyLongObject, сначала вызывается его метод __index__() (если он присутствует), чтобы преобразовать его в PyLongObject.

Если значение obj больше LONG_MAX или меньше LONG_MIN, то *overflow устанавливается в 1 или -1 соответственно, и возвращается -1; в противном случае, *overflow устанавливается в 0. Если возникает любая другая ошибка, *overflow устанавливается в 0, и возвращается -1 как обычно.

Возвращает -1 при ошибке. Используйте PyErr_Occurred() для уточнения.

Изменено в версии 3.8: Используется __index__(), если доступен.

Изменено в версии 3.10: Эта функция больше не будет использовать __int__().

long long PyLong_AsLongLong(PyObject *obj)
Часть Стабильной ABI.

Возвращает C long long представление obj. Если obj не является экземпляром PyLongObject, сначала вызывается его метод __index__() (если он присутствует), чтобы преобразовать его в PyLongObject.

Возвышает OverflowError, если значение obj выходит за пределы диапазона для long long.

Возвращает -1 при ошибке. Используйте PyErr_Occurred() для уточнения.

Изменено в версии 3.8: Используется __index__(), если доступен.

Изменено в версии 3.10: Эта функция больше не будет использовать __int__().

long long PyLong_AsLongLongAndOverflow(PyObject *obj, int *overflow)
Часть Стабильной ABI.

Возвращает C long long представление obj. Если obj не является экземпляром PyLongObject, сначала вызывается его метод __index__() (если он присутствует), чтобы преобразовать его в PyLongObject.

Если значение obj больше LLONG_MAX или меньше LLONG_MIN, то *overflow устанавливается в 1 или -1 соответственно, и возвращается -1; в противном случае, *overflow устанавливается в 0. Если возникает любая другая ошибка, *overflow устанавливается в 0, и возвращается -1 как обычно.

Возвращает -1 при ошибке. Используйте PyErr_Occurred() для уточнения.

Введено в версии 3.2.

Изменено в версии 3.8: Используется __index__(), если доступен.

Изменено в версии 3.10: Эта функция больше не будет использовать __int__().

Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)
Часть Стабильной ABI.

Возвращает C Py_ssize_t представление pylong. pylong должен быть экземпляром PyLongObject.

Возвышает OverflowError, если значение pylong выходит за пределы диапазона для Py_ssize_t.

Возвращает -1 при ошибке. Используйте PyErr_Occurred() для уточнения.

unsigned long PyLong_AsUnsignedLong(PyObject *pylong)
Часть Стабильной ABI.

Возвращает C unsigned long представление pylong. pylong должен быть экземпляром PyLongObject.

Возвышает OverflowError, если значение pylong выходит за пределы диапазона для unsigned long.

Возвращает (unsigned long)-1 при ошибке. Используйте PyErr_Occurred() для уточнения.

size_t PyLong_AsSize_t(PyObject *pylong)
Часть Стабильной ABI.

Возвращает C size_t представление pylong. pylong должен быть экземпляром PyLongObject.

Возвышает OverflowError, если значение pylong выходит за пределы диапазона для size_t.

Возвращает (size_t)-1 при ошибке. Используйте PyErr_Occurred() для уточнения.

unsigned long long PyLong_AsUnsignedLongLong(PyObject *pylong)
Часть Стабильной ABI.

Возвращает C unsigned long long представление pylong. pylong должен быть экземпляром PyLongObject.

Возвышает OverflowError, если значение pylong выходит за пределы диапазона для unsigned long long.

Возвращает (unsigned long long)-1 при ошибке. Используйте PyErr_Occurred() для уточнения.

Изменено в версии 3.1: Отрицательное pylong теперь вызывает OverflowError, а не TypeError.

unsigned long PyLong_AsUnsignedLongMask(PyObject *obj)
Часть Стабильной ABI.

Возвращает представление объекта obj в виде C unsigned long. Если obj не является экземпляром PyLongObject, сначала вызывается его метод __index__() (если он присутствует) для преобразования в PyLongObject.

Если значение obj выходит за пределы диапазона для unsigned long, возвращается результат приведения этого значения по модулю ULONG_MAX + 1.

Возвращает (unsigned long)-1 при ошибке. Используйте PyErr_Occurred() для различения.

Изменено в версии 3.8: Используется __index__(), если доступно.

Изменено в версии 3.10: Эта функция больше не будет использовать __int__().

unsigned long long PyLong_AsUnsignedLongLongMask(PyObject *obj)
Часть Стабильной ABI.

Возвращает представление объекта obj в виде C unsigned long long. Если obj не является экземпляром PyLongObject, сначала вызывается его метод __index__() (если он присутствует) для преобразования в PyLongObject.

Если значение obj выходит за пределы диапазона для unsigned long long, возвращается результат приведения этого значения по модулю ULLONG_MAX + 1.

Возвращает (unsigned long long)-1 при ошибке. Используйте PyErr_Occurred() для различения.

Изменено в версии 3.8: Используется __index__(), если доступно.

Изменено в версии 3.10: Эта функция больше не будет использовать __int__().

double PyLong_AsDouble(PyObject *pylong)
Часть Стабильной ABI.

Возвращает представление целого числа pylong в виде C double. pylong должен быть экземпляром PyLongObject.

Вызывает OverflowError, если значение pylong выходит за пределы диапазона для double.

Возвращает -1.0 при ошибке. Используйте PyErr_Occurred() для различения.

void *PyLong_AsVoidPtr(PyObject *pylong)
Часть Стабильной ABI.

Преобразует целое число Python pylong в указатель C void. Если pylong не может быть преобразован, будет вызвано исключение OverflowError. Это гарантирует получение полезного указателя void только для значений, созданных с помощью PyLong_FromVoidPtr().

Возвращает NULL при ошибке. Используйте PyErr_Occurred() для различения.

© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/c-api/long.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API