long.md
1> **Источник:** https://python-all.ru/2.6/c-api/long.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты длинных целых чисел89**`PyLongObject`**1011Этот подтип1213[`PyObject`](https://python-all.ru/2.6/c-api/structures.html#PyObject)1415представляет длинное целое Python.1617**[PyTypeObject](https://python-all.ru/2.6/c-api/type.html#PyTypeObject) `PyLong_Type`**1819Этот экземпляр [`PyTypeObject`](https://python-all.ru/2.6/c-api/type.html#PyTypeObject) представляет тип длинного целого Python. Это тот же объект, что и `long` и `types.LongType`.2021**int `PyLong_Check`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*p*)**2223Возвращает истину, если аргумент является [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject) или подтипом [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject).2425Изменено в версии 2.2: Теперь допускаются подтипы.2627**int `PyLong_CheckExact`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*p*)**2829Возвращает истину, если аргумент является [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject), но не подтипом [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject).3031Новое в версии 2.2.3233**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromLong`(long *v*)**3435*Возвращаемое значение: новая ссылка.*3637Возвращает новый объект [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject) из *v* или *NULL* в случае ошибки.3839**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromUnsignedLong`(unsigned long *v*)**4041*Возвращаемое значение: новая ссылка.*4243Возвращает новый объект [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject) из C `unsigned long` или *NULL* в случае ошибки.4445**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromSsize_t`(Py\_ssize\_t *v*)**4647Возвращает новый объект [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject) из C `Py_ssize_t` или *NULL* в случае ошибки.4849Новое в версии 2.6.5051**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromSize_t`(size\_t *v*)**5253Возвращает новый объект [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject) из C `size_t` или *NULL* в случае ошибки.5455Новое в версии 2.6.5657**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromLongLong`(PY\_LONG\_LONG *v*)**5859*Возвращаемое значение: новая ссылка.*6061Возвращает новый объект [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject) из C `long long` или *NULL* в случае ошибки.6263**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromUnsignedLongLong`(unsigned PY\_LONG\_LONG *v*)**6465*Возвращаемое значение: новая ссылка.*6667Возвращает новый объект [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject) из C `unsigned long long` или *NULL* в случае ошибки.6869**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromDouble`(double *v*)**7071*Возвращаемое значение: новая ссылка.*7273Возвращает новый объект [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject) из целой части *v* или *NULL* в случае ошибки.7475**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromString`(char *\*str*, char *\*\*pend*, int *base*)**7677*Возвращаемое значение: новая ссылка.*7879Возвращает новый [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#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.6/library/exceptions.html#exceptions.ValueError).8081**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromUnicode`([Py\_UNICODE](https://python-all.ru/2.6/c-api/unicode.html#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.6/library/exceptions.html#exceptions.ValueError).8687Новое в версии 1.6.8889Изменено в версии 2.5: Ранее эта функция использовала `int` для *length*. Это может потребовать изменений в коде для корректной поддержки 64-разрядных систем.9091**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyLong_FromVoidPtr`(void *\*p*)**9293*Возвращаемое значение: новая ссылка.*9495Создаёт целое или длинное целое Python из указателя *p*. Значение указателя можно получить из результирующего значения с помощью [`PyLong_AsVoidPtr()`](https://python-all.ru/2.6/c-api/long.html#PyLong_AsVoidPtr).9697Новое в версии 1.5.2.9899Изменено в версии 2.5: Если целое число больше LONG\_MAX, возвращается положительное длинное целое.100101**long `PyLong_AsLong`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*pylong*)**102103Возвращает представление содержимого *pylong* в виде C `long`. Если *pylong* больше `LONG_MAX`, возбуждается [`OverflowError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.OverflowError) и возвращается `-1`.104105**Py\_ssize\_t `PyLong_AsSsize_t`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*pylong*)**106107Возвращает `Py_ssize_t` – представление содержимого *pylong* на языке C. Если *pylong* больше `PY_SSIZE_T_MAX`, возбуждается исключение [`OverflowError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.OverflowError) и возвращается `-1`.108109Новое в версии 2.6.110111**unsigned long `PyLong_AsUnsignedLong`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*pylong*)**112113Возвращает представление содержимого *pylong* в виде C `unsigned long`. Если *pylong* больше `ULONG_MAX`, возникает исключение [`OverflowError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.OverflowError).114115**PY\_LONG\_LONG `PyLong_AsLongLong`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*pylong*)**116117Возвращает C `long long` из длинного целого Python. Если *pylong* невозможно представить как `long long`, будет возбуждено [`OverflowError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.OverflowError).118119Новое в версии 2.2.120121**unsigned PY\_LONG\_LONG `PyLong_AsUnsignedLongLong`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*pylong*)**122123Возвращает C `unsigned long long` из длинного целого Python. Если *pylong* невозможно представить как `unsigned long long`, будет возбуждено [`OverflowError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.OverflowError), если значение положительно, или [`TypeError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.TypeError) – если отрицательно.124125Новое в версии 2.2.126127**unsigned long `PyLong_AsUnsignedLongMask`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*io*)**128129Возвращает C `unsigned long` из длинного целого Python без проверки на переполнение.130131Новое в версии 2.3.132133**unsigned PY\_LONG\_LONG `PyLong_AsUnsignedLongLongMask`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*io*)**134135Return a C `unsigned long long` from a Python long integer, without checking for overflow.136137Новое в версии 2.3.138139**double `PyLong_AsDouble`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*pylong*)**140141Возвращает представление содержимого142143*pylong*144145в виде C146147`double`148149. Если150151*pylong*152153не может быть приблизительно представлен как154155`double`156157, возбуждается исключение158159[`OverflowError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.OverflowError)160161и возвращается162163`-1.0`164165.166167**void\* `PyLong_AsVoidPtr`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*pylong*)**168169Преобразует целое число Python *pylong* в указатель C `void`. Если *pylong* не удаётся преобразовать, будет возбуждено исключение [`OverflowError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.OverflowError). Гарантируется, что результирующий указатель `void` будет пригоден для использования только для значений, созданных с помощью [`PyLong_FromVoidPtr()`](https://python-all.ru/2.6/c-api/long.html#PyLong_FromVoidPtr).170171Новое в версии 1.5.2.172173Изменено в версии 2.5: Для значений вне диапазона 0..LONG\_MAX принимаются как знаковые, так и беззнаковые целые числа.174