Целочисленные объекты¶Integer Objects
Все целые числа реализованы как «длинные» целочисленные объекты произвольного размера.
- PyTypeObject PyLong_Type¶
- Этот экземпляр PyTypeObject представляет целочисленный тип Python. Это тот же объект, что и int.
- int PyLong_Check(PyObject *p)¶
- Возвращает истину, если аргумент является PyLongObject или подтипом PyLongObject.
- int PyLong_CheckExact(PyObject *p)¶
- Возвращает истину, если аргумент является PyLongObject, но не подтипом PyLongObject.
- PyObject* PyLong_FromLong(long v)¶
- Возвращаемое значение: новая ссылка.
Возвращает новый объект PyLongObject из v или NULL в случае ошибки.
Текущая реализация хранит массив объектов целых чисел для всех целых чисел между -5 и 256. Когда создаётся int в этом диапазоне, фактически возвращается ссылка на существующий объект. Поэтому изменение значения 1 должно быть возможным. Поведение Python в этом случае, вероятно, не определено. :-)
- 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 в случае ошибки.
- PyObject* PyLong_FromSize_t(size_t v)¶
- Возвращает новый объект PyLongObject из C size_t или NULL в случае ошибки.
- 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 начинается с '0o' или '0O', используется основание 8; если str начинается с '0b' или '0B', используется основание 2; в противном случае используется основание 10. Если base не равно 0, оно должно быть между 2 и 36 включительно. Начальные пробелы игнорируются. Если цифры отсутствуют, вызывается ValueError.
- PyObject* PyLong_FromUnicode(Py_UNICODE *u, Py_ssize_t length, int base)¶
- Возвращаемое значение: новая ссылка.
Преобразует последовательность цифр Unicode в целое число Python. Строка Unicode сначала кодируется в байтовую строку с помощью PyUnicode_EncodeDecimal, а затем преобразуется с помощью PyLong_FromString.
- PyObject* PyLong_FromVoidPtr(void *p)¶
- Возвращаемое значение: новая ссылка.
Создаёт целое число Python из указателя p. Значение указателя можно получить из результирующего числа с помощью PyLong_AsVoidPtr.
- long PyLong_AsLong(PyObject *pylong)¶
Возвращает представление содержимого pylong в виде C long. Если pylong больше LONG_MAX, возникает исключение OverflowError, и возвращается -1. Не-long объекты автоматически преобразуются в long, и если при этом возникают исключения, возвращается -1.
- long PyLong_AsLongAndOverflow(PyObject *pylong, int* overflow)¶
- Возвращает представление содержимого pylong в виде C long. Если pylong больше LONG_MAX, возвращает -1 и устанавливает *overflow в 1 (для переполнения) или -1 (для отрицательного переполнения). Если из-за ошибок типа возникает исключение, также возвращается -1.
- Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)¶
Возвращает Py_ssize_t – представление содержимого pylong на языке C. Если pylong больше PY_SSIZE_T_MAX, возбуждается исключение OverflowError и возвращается -1.
- unsigned long PyLong_AsUnsignedLong(PyObject *pylong)¶
Возвращает представление содержимого pylong в виде C unsigned long. Если pylong больше ULONG_MAX, возникает исключение OverflowError.
- Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)
Возвращает Py_ssize_t – представление содержимого pylong. Если pylong больше PY_SSIZE_T_MAX, возбуждается исключение OverflowError.
- size_t PyLong_AsSize_t(PyObject *pylong)¶
- Возвращает представление содержимого pylong в виде size_t. Если pylong больше максимального значения для size_t, возникает исключение OverflowError.
- PY_LONG_LONG PyLong_AsLongLong(PyObject *pylong)¶
- Возвращает C-тип long long из целого Python. Если pylong нельзя представить как long long, будет возбуждено исключение OverflowError.
- unsigned PY_LONG_LONG PyLong_AsUnsignedLongLong(PyObject *pylong)¶
- Возвращает C-тип unsigned long long из целого Python. Если pylong нельзя представить как unsigned long long, то для положительного значения будет возбуждено исключение OverflowError, а для отрицательного – TypeError.
- unsigned long PyLong_AsUnsignedLongMask(PyObject *io)¶
- Возвращает C unsigned long из Python-целого, без проверки на переполнение.
- unsigned PY_LONG_LONG PyLong_AsUnsignedLongLongMask(PyObject *io)¶
- Возвращает C unsigned long long из целого числа Python, без проверки на переполнение.
- double PyLong_AsDouble(PyObject *pylong)¶
- Возвращает представление содержимого pylong в виде C double. Если pylong не может быть приблизительно представлен как double, возбуждается исключение OverflowError и возвращается -1.0.
- void* PyLong_AsVoidPtr(PyObject *pylong)¶
- Преобразует целое число Python pylong в указатель C void. Если pylong не может быть преобразовано, будет возбуждено исключение OverflowError. Гарантируется, что полученный указатель void будет пригоден для использования только для значений, созданных с помощью PyLong_FromVoidPtr.