Объекты bytes¶Bytes Objects
Эти функции возбуждают TypeError, если ожидается параметр bytes, а
вызываются с параметром, не являющимся bytes.
-
PyTypeObject PyBytes_Type¶
- Часть Stable ABI.
Этот экземпляр
PyTypeObjectпредставляет тип bytes в Python; это тот же объект, что иbytesв слое Python.
-
int PyBytes_Check(PyObject *o)¶
Возвращает true, если объект o является объектом bytes или экземпляром подтипа типа bytes. Эта функция всегда завершается успешно.
-
int PyBytes_CheckExact(PyObject *o)¶
Возвращает true, если объект o является объектом bytes, но не экземпляром подтипа типа bytes. Эта функция всегда завершается успешно.
-
PyObject *PyBytes_FromString(const char *v)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI.
Возвращает новый объект bytes с копией строки v в качестве значения в случае успеха, и
NULLв случае неудачи. Параметр v не должен бытьNULL; он не будет проверяться.
-
PyObject *PyBytes_FromStringAndSize(const char *v, Py_ssize_t len)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI.
Возвращает новый объект bytes с копией строки v в качестве значения и длины len в случае успеха, и
NULLв случае неудачи. Если v равноNULL, содержимое объекта bytes не инициализировано.
-
PyObject *PyBytes_FromFormat(const char *format, ...)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI.
Принимает строку формата в стиле C
printf(), строку format и переменное количество аргументов, вычисляет размер результирующего объекта bytes Python и возвращает объект bytes, в который отформатированы значения. Переменные аргументы должны быть типами C и точно соответствовать символам формата в строке format. Допускаются следующие символы формата:Символы формата
Тип
Описание
%%н/д
Буквальный символ %.
%cint
Один байт, представленный как C int.
%dint
Эквивалентно
printf("%d"). [1]%uunsigned int
Эквивалентно
printf("%u"). [1]%ldlong
Эквивалентно
printf("%ld"). [1]%luunsigned long
Эквивалентно
printf("%lu"). [1]%zdЭквивалентно
printf("%zd"). [1]%zusize_t
Эквивалентно
printf("%zu"). [1]%iint
Эквивалентно
printf("%i"). [1]%xint
Эквивалентно
printf("%x"). [1]%sconst char*
Нуль-терминированный массив символов C.
%pconst void*
Шестнадцатеричное представление указателя C. В основном эквивалентно
printf("%p"), за исключением того, что гарантированно начинается с литерала0xнезависимо от того, что возвращаетprintfна данной платформе.Нераспознанный символ формата приводит к тому, что вся оставшаяся строка формата копируется как есть в результирующий объект, а все лишние аргументы отбрасываются.
-
PyObject *PyBytes_FromFormatV(const char *format, va_list vargs)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI.
Идентично
PyBytes_FromFormat(), за исключением того, что принимает ровно два аргумента.
-
PyObject *PyBytes_FromObject(PyObject *o)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI.
Возвращает байтовое представление объекта o, реализующего протокол буфера.
-
Py_ssize_t PyBytes_Size(PyObject *o)¶
- Часть Stable ABI.
Возвращает длину байтов в байтовом объекте o.
-
Py_ssize_t PyBytes_GET_SIZE(PyObject *o)¶
Аналогично
PyBytes_Size(), но без проверки ошибок.
-
char *PyBytes_AsString(PyObject *o)¶
- Часть Stable ABI.
Возвращает указатель на содержимое o. Указатель ссылается на внутренний буфер объекта o, который состоит из
len(o) + 1байтов. Последний байт в буфере всегда нулевой, независимо от наличия других нулевых байтов. Данные нельзя изменять никаким образом, за исключением случая, когда объект только что был создан с помощьюPyBytes_FromStringAndSize(NULL, size). Его нельзя освобождать. Если o вообще не является байтовым объектом,PyBytes_AsString()возвращаетNULLи возбуждаетTypeError.
-
char *PyBytes_AS_STRING(PyObject *string)¶
Аналогично
PyBytes_AsString(), но без проверки ошибок.
-
int PyBytes_AsStringAndSize(PyObject *obj, char **buffer, Py_ssize_t *length)¶
- Часть Stable ABI.
Возвращает содержимое объекта obj, завершающееся нулевым байтом, через выходные переменные buffer и length. В случае успеха возвращает
0.Если length равно
NULL, байтовый объект не может содержать встроенные нулевые байты; если содержит, функция возвращает-1и возбуждаетсяValueError.Буфер ссылается на внутренний буфер obj, который содержит дополнительный нулевой байт в конце (не учитывается в length). Данные нельзя изменять никаким образом, за исключением случая, когда объект только что был создан с помощью
PyBytes_FromStringAndSize(NULL, size). Его нельзя освобождать. Если obj вообще не является байтовым объектом,PyBytes_AsStringAndSize()возвращает-1и возбуждаетTypeError.Изменено в версии 3.5: Ранее,
TypeErrorвозбуждалось, когда в байтовом объекте встречались встроенные нулевые байты.
-
void PyBytes_Concat(PyObject **bytes, PyObject *newpart)¶
- Часть Stable ABI.
Создаёт новый байтовый объект в *bytes, содержащий содержимое newpart, добавленное к bytes; вызывающий получает новую ссылку. Ссылка на старое значение bytes будет украдена. Если новый объект невозможно создать, старая ссылка на bytes всё равно будет отброшена, а значение *bytes будет установлено в
NULL; будет установлено соответствующее исключение.
-
void PyBytes_ConcatAndDel(PyObject **bytes, PyObject *newpart)¶
- Часть Stable ABI.
Создаёт новый байтовый объект в *bytes, содержащий содержимое newpart, добавленное к bytes. Эта версия освобождает сильную ссылку на newpart (т.е. уменьшает счётчик ссылок).
-
int _PyBytes_Resize(PyObject **bytes, Py_ssize_t newsize)¶
Способ изменить размер байтового объекта, несмотря на то что он «неизменяем». Используйте это только для создания совершенно нового байтового объекта; не используйте, если bytes уже может быть известен в других частях кода. Вызов этой функции является ошибкой, если счётчик ссылок на входной байтовый объект не равен единице. Передайте адрес существующего байтового объекта как lvalue (в него может производиться запись) и желаемый новый размер. В случае успеха *bytes содержит изменённый байтовый объект и возвращается
0; адрес в *bytes может отличаться от исходного. Если перераспределение не удалось, исходный байтовый объект по адресу *bytes освобождается, *bytes устанавливается вNULL, устанавливаетсяMemoryErrorи возвращается-1.
Эта страница – перевод. Оригинал на английском – docs.python.org. Нашли неточность? Сообщите нам.