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

long.md

168 строк · 12.8 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/c-api/long.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты длинных целых чисел89**`PyLongObject`**1011Этот подтип [`PyObject`](https://python-all.ru/2.7/c-api/structures.html#c.PyObject) представляет собой объект длинного целого числа Python.1213**[PyTypeObject](https://python-all.ru/2.7/c-api/type.html#c.PyTypeObject) `PyLong_Type`**1415Этот экземпляр [`PyTypeObject`](https://python-all.ru/2.7/c-api/type.html#c.PyTypeObject) представляет тип длинного целого числа Python. Это тот же объект, что и `long` и `types.LongType`.1617#### `int PyLong_Check(PyObject *p)`1819Возвращает истину, если аргумент является [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) или подтипом [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject).2021Изменено в версии 2.2: Теперь допускаются подтипы.2223#### `int PyLong_CheckExact(PyObject *p)`2425Возвращает истину, если аргумент является [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject), но не подтипом [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject).2627Новое в версии 2.2.2829#### `PyObject* PyLong_FromLong(long v)`3031*Возвращаемое значение: новая ссылка.*3233Возвращает новый [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) объект из *v* или *NULL* при ошибке.3435#### `PyObject* PyLong_FromUnsignedLong(unsigned long v)`3637*Возвращаемое значение: новая ссылка.*3839Возвращает новый [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) объект из C `unsigned long` или *NULL* при ошибке.4041#### `PyObject* PyLong_FromSsize_t(Py_ssize_t v)`4243*Возвращаемое значение: новая ссылка.*4445Возвращает новый [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) объект из C `Py_ssize_t` или *NULL* при ошибке.4647Новое в версии 2.6.4849#### `PyObject* PyLong_FromSize_t(size_t v)`5051*Возвращаемое значение: новая ссылка.*5253Возвращает новый [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) объект из C `size_t` или *NULL* при ошибке.5455Новое в версии 2.6.5657#### `PyObject* PyLong_FromLongLong(PY_LONG_LONG v)`5859*Возвращаемое значение: новая ссылка.*6061Возвращает новый [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) объект из C `long long` или *NULL* при ошибке.6263#### `PyObject* PyLong_FromUnsignedLongLong(unsigned PY_LONG_LONG v)`6465*Возвращаемое значение: новая ссылка.*6667Возвращает новый [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) объект из C `unsigned long long`, или *NULL* при ошибке.6869#### `PyObject* PyLong_FromDouble(double v)`7071*Возвращаемое значение: новая ссылка.*7273Возвращает новый [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) объект из целой части *v* или *NULL* при ошибке.7475#### `PyObject* PyLong_FromString(char *str, char **pend, int base)`7677*Возвращаемое значение: новая ссылка.*7879Возвращает новый [`PyLongObject`](https://python-all.ru/2.7/c-api/long.html#c.PyLongObject) на основе строкового значения в *str*, которое интерпретируется согласно основанию системы счисления в *base*. Если *pend* не равен *NULL*, то *\*pend* будет указывать на первый символ в *str*, следующий за представлением числа. Если *base* равен `0`, основание будет определено по начальным символам *str*: если *str* начинается с `'0x'` или `'0X'`, будет использовано основание 16; если *str* начинается с `'0'`, будет использовано основание 8; в противном случае будет использовано основание 10. Если *base* не равен `0`, он должен быть между `2` и `36` включительно. Начальные пробелы игнорируются. Если цифр нет, возбуждается [`ValueError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.ValueError).8081#### `PyObject* PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)`8283*Возвращаемое значение: новая ссылка.*8485Преобразует последовательность цифр Unicode в длинное целое число Python. Первый параметр, *u*, указывает на первый символ строки Unicode, *length* задаёт количество символов, а *base* – основание системы счисления для преобразования. Основание должно быть в диапазоне \[2, 36\]; если оно выходит за пределы, возбуждается [`ValueError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.ValueError).8687Новое в версии 1.6.8889Изменено в версии 2.5: Эта функция использовала `int` для *length*. Это может потребовать изменений в коде для корректной поддержки 64-разрядных систем.9091#### `PyObject* PyLong_FromVoidPtr(void *p)`9293*Возвращаемое значение: новая ссылка.*9495Создаёт целое число Python (int или long) из указателя *p*. Значение указателя можно получить из результирующего значения с помощью [`PyLong_AsVoidPtr()`](https://python-all.ru/2.7/c-api/long.html#c.PyLong_AsVoidPtr).9697Новое в версии 1.5.2.9899Изменено в версии 2.5: Если целое число больше LONG\_MAX, возвращается положительное длинное целое.100101#### `long PyLong_AsLong(PyObject *pylong)`102103Возвращает представление содержимого *pylong* в виде C `long`. Если *pylong* больше `LONG_MAX`, возбуждается [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError) и возвращается `-1`.104105#### `long PyLong_AsLongAndOverflow(PyObject *pylong, int *overflow)`106107Возвращает представление содержимого *pylong* в виде C `long`. Если *pylong* больше `LONG_MAX` или меньше `LONG_MIN`, устанавливает *\*overflow* в `1` или `-1` соответственно и возвращает `-1`; в противном случае устанавливает *\*overflow* в `0`. Если возникает любое другое исключение (например, TypeError или MemoryError), то возвращается `-1`, а *\*overflow* будет равно `0`.108109Новое в версии 2.7.110111#### `PY_LONG_LONG PyLong_AsLongLongAndOverflow(PyObject *pylong, int *overflow)`112113Возвращает представление содержимого *pylong* в виде C `long long`. Если *pylong* больше `PY_LLONG_MAX` или меньше `PY_LLONG_MIN`, устанавливает *\*overflow* в `1` или `-1` соответственно и возвращает `-1`; в противном случае устанавливает *\*overflow* в `0`. Если возникает любое другое исключение (например, TypeError или MemoryError), то возвращается `-1`, а *\*overflow* будет равно `0`.114115Новое в версии 2.7.116117#### `Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)`118119Возвращает представление содержимого *pylong* в виде C `Py_ssize_t`. Если *pylong* больше `PY_SSIZE_T_MAX`, возбуждается [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError) и возвращается `-1`.120121Новое в версии 2.6.122123#### `unsigned long PyLong_AsUnsignedLong(PyObject *pylong)`124125Возвращает представление содержимого *pylong* в виде C `unsigned long`. Если *pylong* больше `ULONG_MAX`, возбуждается [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError).126127#### `PY_LONG_LONG PyLong_AsLongLong(PyObject *pylong)`128129Возвращает C `long long` из длинного целого Python. Если *pylong* не может быть представлено как `long long`, возбуждается [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError) и возвращается `-1`.130131Новое в версии 2.2.132133#### `unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(PyObject *pylong)`134135Возвращает C `unsigned long long` из длинного целого Python. Если *pylong* не может быть представлено как `unsigned long long`, возбуждается [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError) и возвращается `(unsigned long long)-1`.136137Новое в версии 2.2.138139Изменено в версии 2.7: Отрицательное значение *pylong* теперь возбуждает [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError), а не [`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError).140141#### `unsigned long PyLong_AsUnsignedLongMask(PyObject *io)`142143Возвращает C `unsigned long` из длинного целого Python без проверки переполнения.144145При ошибке возвращает `(unsigned long)-1`. Используйте [`PyErr_Occurred()`](https://python-all.ru/2.7/c-api/exceptions.html#c.PyErr_Occurred) для разрешения неоднозначности.146147Новое в версии 2.3.148149#### `unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask(PyObject *io)`150151Возвращает C `unsigned long long` из длинного целого Python без проверки переполнения.152153Возвращает `(unsigned PY_LONG_LONG)-1` при ошибке. Используйте [`PyErr_Occurred()`](https://python-all.ru/2.7/c-api/exceptions.html#c.PyErr_Occurred) для устранения неоднозначности.154155Новое в версии 2.3.156157#### `double PyLong_AsDouble(PyObject *pylong)`158159Возвращает представление содержимого *pylong* в виде C `double`. Если *pylong* не может быть приблизительно представлено как `double`, возбуждается исключение [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError) и возвращается `-1.0`.160161#### `void* PyLong_AsVoidPtr(PyObject *pylong)`162163Преобразует целое число Python (int или long) *pylong* в указатель C `void`. Если *pylong* не удаётся преобразовать, возбуждается [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError). Гарантируется, что указатель `void` будет пригоден для использования только для значений, созданных с помощью [`PyLong_FromVoidPtr()`](https://python-all.ru/2.7/c-api/long.html#c.PyLong_FromVoidPtr).164165Новое в версии 1.5.2.166167Изменено в версии 2.5: Для значений вне диапазона 0..LONG\_MAX принимаются как знаковые, так и беззнаковые целые числа.168