Объекты 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. newsize – новая длина объекта bytes. Можно считать, что это создание нового объекта bytes и уничтожение старого, только более эффективно. Передайте адрес существующего объекта bytes как lvalue (в него может быть произведена запись) и желаемый новый размер. В случае успеха *bytes содержит изменённый объект bytes и возвращается
0; адрес в *bytes может отличаться от исходного значения. Если перераспределение не удалось, исходный объект bytes по адресу *bytes освобождается, *bytes устанавливается вNULL, устанавливаетсяMemoryErrorи возвращается-1.
-
PyObject *PyBytes_Repr(PyObject *bytes, int smartquotes)¶
- Часть Stable ABI.
Возвращает строковое представление bytes. Эта функция в настоящее время используется для реализации
bytes.__repr__()в Python.Эта функция не выполняет проверку типа; передача bytes в качестве объекта, не являющегося bytes, или
NULLприводит к неопределённому поведению.Если smartquotes равно true, представление будет использовать строку в двойных кавычках вместо строки в одинарных кавычках, если в bytes присутствуют одинарные кавычки. Например, байтовая строка
'Python'будет представлена какb"'Python'", когда smartquotes равно true, или какb'\'Python\'', когда оно равно false.В случае успеха эта функция возвращает сильную ссылку на объект
str, содержащий представление. В случае ошибки возвращаетсяNULLс установленным исключением.
-
PyObject *PyBytes_DecodeEscape(const char *s, Py_ssize_t len, const char *errors, Py_ssize_t unicode, const char *recode_encoding)¶
- Часть Stable ABI.
Обрабатывает управляющие последовательности в строке с обратной косой чертой s. s не должно быть
NULL. len должно быть размером s.errors должно быть одним из
"strict","replace"или"ignore". Если errors равноNULL, то по умолчанию используется"strict".В случае успеха эта функция возвращает сильную ссылку на объект Python
bytes, содержащий неэкранированную строку. В случае ошибки эта функция возвращаетNULLс установленным исключением.Изменено в версии 3.9: unicode и recode_encoding теперь не используются.
Эта страница – перевод. Оригинал на английском – docs.python.org. Нашли неточность? Сообщите нам.