Документация Python неофициальный перевод

Объекты длинных целых чиселLong Integer Objects

PyLongObject

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

PyTypeObject PyLong_Type

Этот экземпляр PyTypeObject представляет тип длинного целого числа Python. Это тот же объект, что и long и types.LongType.

int PyLong_Check(PyObject *p)

Возвращает истину, если аргумент является PyLongObject или подтипом PyLongObject.

Изменено в версии 2.2: Теперь допускаются подтипы.

int PyLong_CheckExact(PyObject *p)

Возвращает истину, если аргумент является PyLongObject, но не подтипом PyLongObject.

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

PyObject* PyLong_FromLong(long v)
Возвращаемое значение: новая ссылка.

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

PyObject* PyLong_FromUnsignedLong(unsigned long v)
Возвращаемое значение: новая ссылка.

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

PyObject* PyLong_FromSsize_t(Py_ssize_t v)
Возвращаемое значение: новая ссылка.

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

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

PyObject* PyLong_FromSize_t(size_t v)
Возвращаемое значение: новая ссылка.

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

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

PyObject* PyLong_FromLongLong(PY_LONG_LONG v)
Возвращаемое значение: новая ссылка.

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

PyObject* PyLong_FromUnsignedLongLong(unsigned PY_LONG_LONG v)
Возвращаемое значение: новая ссылка.

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

PyObject* PyLong_FromDouble(double v)
Возвращаемое значение: новая ссылка.

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

PyObject* PyLong_FromString(char *str, char **pend, int base)
Возвращаемое значение: новая ссылка.

Возвращает новый PyLongObject на основе строкового значения в str, которое интерпретируется согласно основанию системы счисления в base. Если pend не равен NULL, то *pend будет указывать на первый символ в str, следующий за представлением числа. Если base равен 0, основание будет определено по начальным символам str: если str начинается с '0x' или '0X', будет использовано основание 16; если str начинается с '0', будет использовано основание 8; в противном случае будет использовано основание 10. Если base не равен 0, он должен быть между 2 и 36 включительно. Начальные пробелы игнорируются. Если цифр нет, возбуждается ValueError.

PyObject* PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)
Возвращаемое значение: новая ссылка.

Преобразует последовательность цифр Unicode в длинное целое число Python. Первый параметр, u, указывает на первый символ строки Unicode, length задаёт количество символов, а base – основание системы счисления для преобразования. Основание должно быть в диапазоне [2, 36]; если оно выходит за пределы, возбуждается ValueError.

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

Изменено в версии 2.5: Эта функция использовала int для length. Это может потребовать изменений в коде для корректной поддержки 64-разрядных систем.

PyObject* PyLong_FromVoidPtr(void *p)
Возвращаемое значение: новая ссылка.

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

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

Изменено в версии 2.5: Если целое число больше LONG_MAX, возвращается положительное длинное целое.

long PyLong_AsLong(PyObject *pylong)

Возвращает представление содержимого pylong в виде C long. Если pylong больше LONG_MAX, возбуждается OverflowError и возвращается -1.

long PyLong_AsLongAndOverflow(PyObject *pylong, int *overflow)

Возвращает представление содержимого pylong в виде C long. Если pylong больше LONG_MAX или меньше LONG_MIN, устанавливает *overflow в 1 или -1 соответственно и возвращает -1; в противном случае устанавливает *overflow в 0. Если возникает любое другое исключение (например, TypeError или MemoryError), то возвращается -1, а *overflow будет равно 0.

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

PY_LONG_LONG PyLong_AsLongLongAndOverflow(PyObject *pylong, int *overflow)

Возвращает представление содержимого pylong в виде C long long. Если pylong больше PY_LLONG_MAX или меньше PY_LLONG_MIN, устанавливает *overflow в 1 или -1 соответственно и возвращает -1; в противном случае устанавливает *overflow в 0. Если возникает любое другое исключение (например, TypeError или MemoryError), то возвращается -1, а *overflow будет равно 0.

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

Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)

Возвращает представление содержимого pylong в виде C Py_ssize_t. Если pylong больше PY_SSIZE_T_MAX, возбуждается OverflowError и возвращается -1.

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

unsigned long PyLong_AsUnsignedLong(PyObject *pylong)

Возвращает представление содержимого pylong в виде C unsigned long. Если pylong больше ULONG_MAX, возбуждается OverflowError.

PY_LONG_LONG PyLong_AsLongLong(PyObject *pylong)

Возвращает C long long из длинного целого Python. Если pylong не может быть представлено как long long, возбуждается OverflowError и возвращается -1.

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

unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(PyObject *pylong)

Возвращает C unsigned long long из длинного целого Python. Если pylong не может быть представлено как unsigned long long, возбуждается OverflowError и возвращается (unsigned long long)-1.

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

Изменено в версии 2.7: Отрицательное значение pylong теперь возбуждает OverflowError, а не TypeError.

unsigned long PyLong_AsUnsignedLongMask(PyObject *io)

Возвращает C unsigned long из длинного целого Python без проверки переполнения.

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

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

unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask(PyObject *io)

Возвращает C unsigned long long из длинного целого Python без проверки переполнения.

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

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

double PyLong_AsDouble(PyObject *pylong)

Возвращает представление содержимого pylong в виде C double. Если pylong не может быть приблизительно представлено как double, возбуждается исключение OverflowError и возвращается -1.0.

void* PyLong_AsVoidPtr(PyObject *pylong)

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

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

Изменено в версии 2.5: Для значений вне диапазона 0..LONG_MAX принимаются как знаковые, так и беззнаковые целые числа.