Об’єкти Bytes¶
Ці функції викликають TypeError
, коли очікується параметр bytes і викликаються з параметром, який не є байтом.
-
PyTypeObject PyBytes_Type¶
- Part of the Stable ABI.
Цей екземпляр
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. Part of the Stable ABI.
Повертає новий об’єкт bytes із копією рядка v як значення в разі успіху та
NULL
у разі помилки. Параметр v не має бутиNULL
; перевірятися не буде.
-
PyObject *PyBytes_FromStringAndSize(const char *v, Py_ssize_t len)¶
- Return value: New reference. Part of the Stable ABI.
Повертає новий об’єкт bytes із копією рядка v як значення та довжиною len у разі успіху та
NULL
у разі помилки. Якщо v має значенняNULL
, вміст об’єкта bytes не ініціалізується.
-
PyObject *PyBytes_FromFormat(const char *format, ...)¶
- Return value: New reference. Part of the Stable ABI.
Візьміть рядок format у стилі C
printf()
і змінну кількість аргументів, обчисліть розмір результуючого об’єкта Python bytes і поверніть об’єкт bytes із відформатованими значеннями. Змінні аргументи мають бути типу C і точно відповідати символам формату в рядку format. Дозволяються такі символи формату:Формат символів
Тип
коментар
%%
немає
Літеральний символ %.
%c
внутр
Один байт, представлений як C int.
%d
внутр
Еквівалент
printf("%d")
. [1]%u
unsigned int
Еквівалент
printf("%u")
. [1]%ld
довгота
Еквівалент
printf("%ld")
. [1]%lu
беззнаковий довгий
Еквівалент
printf("%lu")
. [1]%zd
Еквівалент
printf("%zd")
. [1]%zu
size_t
Еквівалент
printf("%zu")
. [1]%i
внутр
Еквівалент
printf("%i")
. [1]%x
внутр
Еквівалент
printf("%x")
. [1]%s
const char*
Масив символів C із закінченням нулем.
%p
const void*
Шістнадцяткове представлення покажчика C. Здебільшого еквівалентний
printf("%p")
за винятком того, що він гарантовано починається з літералу0x
незалежно від того, що даєprintf
платформи.Нерозпізнаний символ формату спричиняє копіювання всієї решти рядка формату в об’єкт результату як є, а будь-які додаткові аргументи відкидаються.
-
PyObject *PyBytes_FromFormatV(const char *format, va_list vargs)¶
- Return value: New reference. Part of the Stable ABI.
Ідентичний
PyBytes_FromFormat()
за винятком того, що він приймає рівно два аргументи.
-
PyObject *PyBytes_FromObject(PyObject *o)¶
- Return value: New reference. Part of the Stable ABI.
Повертає представлення байтів об’єкта o, який реалізує протокол буфера.
-
Py_ssize_t PyBytes_Size(PyObject *o)¶
- Part of the Stable ABI.
Повертає довжину байтів у байтах об’єкт o.
-
Py_ssize_t PyBytes_GET_SIZE(PyObject *o)¶
Similar to
PyBytes_Size()
, but without error checking.
-
char *PyBytes_AsString(PyObject *o)¶
- Part of the Stable ABI.
Повернути вказівник на вміст o. Покажчик посилається на внутрішній буфер o, який складається з
len(o) + 1
байтів. Останній байт у буфері завжди нульовий, незалежно від того, чи є інші нульові байти. Дані не можна змінювати жодним чином, якщо об’єкт не було щойно створено за допомогоюPyBytes_FromStringAndSize(NULL, size)
. Його не можна звільняти. Якщо o взагалі не є об’єктом bytes,PyBytes_AsString()
повертаєNULL
і викликаєTypeError
.
-
char *PyBytes_AS_STRING(PyObject *string)¶
Similar to
PyBytes_AsString()
, but without error checking.
-
int PyBytes_AsStringAndSize(PyObject *obj, char **buffer, Py_ssize_t *length)¶
- Part of the Stable ABI.
Return the null-terminated contents of the object obj through the output variables buffer and length. Returns
0
on success.Якщо length дорівнює
NULL
, об’єкт bytes може не містити вбудованих нульових байтів; якщо це так, функція повертає-1
і викликаєValueError
.Буфер відноситься до внутрішнього буфера obj, який містить додатковий нульовий байт у кінці (не враховується в довжині). Дані не можна змінювати жодним чином, якщо об’єкт не було щойно створено за допомогою
PyBytes_FromStringAndSize(NULL, size)
. Його не можна звільняти. Якщо obj взагалі не є об’єктом bytes,PyBytes_AsStringAndSize()
повертає-1
і викликаєTypeError
.Змінено в версії 3.5: Раніше
TypeError
виникало, коли в об’єкті bytes зустрічалися вбудовані нульові байти.
-
void PyBytes_Concat(PyObject **bytes, PyObject *newpart)¶
- Part of the Stable ABI.
Створіть новий об’єкт bytes у *bytes, що містить вміст newpart, доданий до bytes; абонент буде володіти новим посиланням. Посилання на старе значення bytes буде викрадено. Якщо новий об’єкт неможливо створити, старе посилання на bytes все одно буде відкинуто, а значення *bytes буде встановлено на
NULL
; буде встановлено відповідний виняток.
-
void PyBytes_ConcatAndDel(PyObject **bytes, PyObject *newpart)¶
- Part of the Stable ABI.
Create a new bytes object in *bytes containing the contents of newpart appended to bytes. This version releases the strong reference to newpart (i.e. decrements its reference count).
-
int _PyBytes_Resize(PyObject **bytes, Py_ssize_t newsize)¶
Спосіб змінити розмір об’єкта bytes, навіть якщо він «незмінний». Використовуйте це лише для створення абсолютно нового об’єкта bytes; не використовуйте це, якщо байти можуть бути вже відомі в інших частинах коду. Виклик цієї функції буде помилковим, якщо refcount для об’єкта вхідних байтів не один. Передайте адресу існуючого об’єкта bytes як lvalue (його можна записати) і новий бажаний розмір. У разі успіху *bytes містить змінений об’єкт байтів і повертає
0
; адреса в *байтах може відрізнятися від введеного значення. Якщо перерозподіл не вдається, вихідний об’єкт bytes у *bytes звільняється, *bytes встановлюється наNULL
, встановлюєтьсяMemoryError
і повертається-1
.