int.md
1> **Источник:** https://python-all.ru/2.6/c-api/int.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Обычные целочисленные объекты89**`PyIntObject`**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) `PyInt_Type`**1819Этот экземпляр [`PyTypeObject`](https://python-all.ru/2.6/c-api/type.html#PyTypeObject) представляет тип обычного целого числа Python. Это тот же объект, что и `int` и `types.IntType`.2021**int `PyInt_Check`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*o*)**2223Возвращает истину, если *o* имеет тип [`PyInt_Type`](https://python-all.ru/2.6/c-api/int.html#PyInt_Type) или является подтипом [`PyInt_Type`](https://python-all.ru/2.6/c-api/int.html#PyInt_Type).2425Изменено в версии 2.2: Теперь допускаются подтипы.2627**int `PyInt_CheckExact`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*o*)**2829Возвращает истину, если *o* имеет тип [`PyInt_Type`](https://python-all.ru/2.6/c-api/int.html#PyInt_Type), но не является подтипом [`PyInt_Type`](https://python-all.ru/2.6/c-api/int.html#PyInt_Type).3031Новое в версии 2.2.3233**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyInt_FromString`(char *\*str*, char *\*\*pend*, int *base*)**3435*Возвращаемое значение: новая ссылка.*3637Возвращает новый [`PyIntObject`](https://python-all.ru/2.6/c-api/int.html#PyIntObject) или [`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). Если строка представляет число, слишком большое для типа `long int` данной машины и предупреждения о переполнении подавлены, будет возвращён [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject). Если предупреждения о переполнении не подавлены, в этом случае будет возвращён *NULL*.3839**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyInt_FromLong`(long *ival*)**4041*Возвращаемое значение: новая ссылка.*4243Создает новый целочисленный объект со значением *ival*.4445Текущая реализация хранит массив объектов целых чисел для всех целых чисел между `-5` и `256`. Когда создаётся int в этом диапазоне, фактически возвращается ссылка на существующий объект. Поэтому изменение значения `1` должно быть возможным. Поведение Python в этом случае, вероятно, не определено. :-)4647**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyInt_FromSsize_t`(Py\_ssize\_t *ival*)**4849*Возвращаемое значение: новая ссылка.*5051Создаёт новый объект целого числа со значением *ival*. Если значение больше `LONG_MAX` или меньше `LONG_MIN`, возвращается объект длинного целого числа.5253Новое в версии 2.5.5455**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyInt_FromSize_t`(size\_t *ival*)**5657Создаёт новый объект целого числа со значением *ival*. Если значение превышает `LONG_MAX`, возвращается объект длинного целого числа.5859Новое в версии 2.5.6061**long `PyInt_AsLong`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*io*)**6263Сначала пытается привести объект к типу6465[`PyIntObject`](https://python-all.ru/2.6/c-api/int.html#PyIntObject)6667, если он ещё не является таковым, а затем возвращает его значение. Если произошла ошибка, возвращается6869`-1`7071, и вызывающий код должен проверить7273`PyErr_Occurred()`7475, чтобы выяснить, была ли ошибка или значение просто оказалось равным -1.7677**long `PyInt_AS_LONG`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*io*)**7879Возвращает значение объекта8081*io*8283. Проверка ошибок не выполняется.8485**unsigned long `PyInt_AsUnsignedLongMask`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*io*)**8687Сначала пытается привести объект к типу [`PyIntObject`](https://python-all.ru/2.6/c-api/int.html#PyIntObject) или [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject), если он ещё не является таковым, а затем возвращает его значение как unsigned long. Эта функция не проверяет переполнение.8889Новое в версии 2.3.9091**unsigned PY\_LONG\_LONG `PyInt_AsUnsignedLongLongMask`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*io*)**9293Сначала пытается привести объект к типу [`PyIntObject`](https://python-all.ru/2.6/c-api/int.html#PyIntObject) или [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject), если он ещё не является таковым, а затем возвращает его значение как unsigned long long, без проверки переполнения.9495Новое в версии 2.3.9697**Py\_ssize\_t `PyInt_AsSsize_t`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*io*)**9899Сначала пытается привести объект к типу [`PyIntObject`](https://python-all.ru/2.6/c-api/int.html#PyIntObject) или [`PyLongObject`](https://python-all.ru/2.6/c-api/long.html#PyLongObject), если он ещё не является таковым, а затем возвращает его значение как `Py_ssize_t`.100101Новое в версии 2.5.102103**long `PyInt_GetMax`()**104105Возвращает максимальное целое число, которое может обработать система (`LONG_MAX`, как определено в системных заголовочных файлах).106107**int `PyInt_ClearFreeList`()**108109Очищает список свободных целых чисел. Возвращает количество элементов, которые не удалось освободить.110111Новое в версии 2.6.112