Bytes объекты¶
Эти функции поднимают TypeError при ожидании параметра bytes и вызываются с
не байтовым параметром.
- 
PyTypeObject 
PyBytes_Type¶ Сущность
PyTypeObjectпредставляет тип Python bytes; это тот же объект, что и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)¶ - Return value: New reference.
Возвращает новый байтовый объект с копией строки v в качестве значение при успешном выполнении и
NULLпри сбое. Параметр v не должен бытьNULL; он не будет проверяться. 
- 
PyObject* 
PyBytes_FromStringAndSize(const char *v, Py_ssize_t len)¶ - Return value: New reference.
Возвращает новый bytes объект с копией строки v как значение и длина, len при успехе, и
NULLпри сбое. Если vNULL, содержимое объекта bytes не инициализируется. 
- 
PyObject* 
PyBytes_FromFormat(const char *format, ...)¶ - Return value: New reference.
Принять C
printf()-стиль format строку и переменное количество аргументов, вычисляет размер получающегося объекта байтов 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]%zdPy_ssize_t Эквивалентный printf("%zd"). [1]%zusize_t Эквивалентный printf("%zu"). [1]%iint Эквивалентный printf("%i"). [1]%xint Эквивалентный printf("%x"). [1]%sconst char* Символьный массив C с нулевым окончанием. %pconst void* Hex представление указателя C. В основном эквивалентно printf("%p"), за исключением того, что оно гарантированно начинается с литерала0xнезависимо от того, что даетprintfплатформа.Нераспознанный символ формата приводит к тому, что вся остальная строка формата копируются как есть в результирующий объект, а любые дополнительные аргументы отбрасываются.
[1] (1, 2, 3, 4, 5, 6, 7, 8) для целочисленных спецификаторов (d, u, ld, lu, zd, zu, i, x) флаг 0-преобразования действует даже при задании точности.  
- 
PyObject* 
PyBytes_FromFormatV(const char *format, va_list vargs)¶ - Return value: New reference.
Идентичен
PyBytes_FromFormat()за исключением того, что он занимает ровно два аргумента. 
- 
PyObject* 
PyBytes_FromObject(PyObject *o)¶ - Return value: New reference.
Возвращает байтовое представление o объекта, реализующего протокол буфера.
 
- 
Py_ssize_t 
PyBytes_GET_SIZE(PyObject *o)¶ Макро-форма
PyBytes_Size(), но без проверки ошибок.
- 
char* 
PyBytes_AsString(PyObject *o)¶ Возвращает указатель на содержимое o. Указатель ссылается на внутренний буфер o, состоящий из
len(o) + 1байт. Последний байт в буфере всегда имеет null значение, независимо от наличия других нулевых байтов. Данные нельзя изменять, если только объект не был создан только с помощью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)¶ Возвращает содержимое объекта, obj через выходные переменные buffer и length.
Если length
NULL, объект bytes не может содержать внедренные null байты; в этом случае функция возвращает-1иValueError.Буфер относится к внутреннему буферу obj, который включает дополнительный null байт в конце (не подсчитывается в length). Данные нельзя изменять, если только объект не был создан только с помощью
PyBytes_FromStringAndSize(NULL, size). Он не должен быть освобожден. Если obj не является объектом байтов,PyBytes_AsStringAndSize()возвращает-1и поднимаетTypeError.Изменено в версии 3.5: Ранее
TypeErrorподнималась при обнаружении встроенных пустых байт в объекте bytes.
- 
void 
PyBytes_Concat(PyObject **bytes, PyObject *newpart)¶ Создать новый байтовый объект в *bytes, содержащий содержимое newpart, добавленное к bytes; вызывающему будет принадлежать новая ссылка. Ссылка на старое значение bytes будет украдена. Если новый объект не может быть создан, старая ссылка на bytes будет по- прежнему отброшена, а значение *bytes будет иметь значение
NULL; будет установлено соответствующее исключение.
- 
void 
PyBytes_ConcatAndDel(PyObject **bytes, PyObject *newpart)¶ Создать новый байтовый объект в *bytes, содержащий содержимое newpart, добавленное к bytes. Эта версия уменьшает количество ссылок на newpart.
- 
int 
_PyBytes_Resize(PyObject **bytes, Py_ssize_t newsize)¶ Способ изменения размера байтового объекта, даже если он является «неизменяемым». Используйте его только для создания совершенно нового байтового объекта; не используйте его, если байты уже известны в других частях кода. Ошибка при вызове этой функции, если количество refcount для объекта входных байтов не равно единице. Передайте адрес существующего байтового объекта в качестве значения lvalue (его можно записать) и требуемого нового размера. При успешном выполнении *bytes содержит объект с измененным размером байтов и возвращенный
0; адрес в *bytes может отличаться от его входного значения. Если перераспределение завершается неуспешно, исходный байтовый объект в *bytes освобождается, *bytes устанавливается вNULL,MemoryErrorустанавливается и возвращается-1.
