Objetos Bytes¶
Estas funções geram TypeError
quando chamadas sem o parâmetro do tupo bytes esperado.
-
PyTypeObject
PyBytes_Type
¶ Esta instância de: c: tipo: PyTypeObject representa o tipo de bytes Python; é o mesmo objeto que: classe: bytes na camada de Python.
-
int
PyBytes_Check
(PyObject *o)¶ Retorna verdadeiro se o objeto o for um objeto do tipo byte ou uma instância de um subtipo do tipo bytes.
-
int
PyBytes_CheckExact
(PyObject *o)¶ Retorna verdadeiro se o objeto o for um objeto de bytes, mas não uma instância de um subtipo do tipo de bytes.
-
PyObject*
PyBytes_FromString
(const char *v)¶ Retorna um novo objeto bytes com uma cópia da string v como valor no sucesso e NULL no caso de falha. O parâmetro v não deve ser NULL; ou ele não será verificado.
-
PyObject*
PyBytes_FromStringAndSize
(const char *v, Py_ssize_t len)¶ Devolver um novo objeto de bytes com uma cópia da string v como valor e comprimento len no sucesso e NULL no caso de falha. Se v for NULL, o conteúdo do objeto bytes não está inicializado.
-
PyObject*
PyBytes_FromFormat
(const char *format, ...)¶ Tome uma seqüência C
printf()
-style format variáveis de números e caracteres são os argumentos, calcule o tamanho do objeto de bytes Python resultante e devolva um objeto bytes com os valores formatados nela. Os argumentos da variável devem ser tipos C e devem corresponder exatamente aos caracteres de formato na seqüência * format *. Os seguintes formatos são permitidos:Caracteres Formatados
Tipo
Comentário
%%
n/a
O caracter literal %.
%c
int
Um único byte, representado como um C int.
%d
int
Equivale exatamente ao
printf("%d")
.%u
unsigned int
Equivale exatamente ao
printf("%u")
.%ld
extenso, comprido
Equivale exatamente ao
printf("%ld")
.%lu
unsigned long
Equivale exatamente ao
printf("%ld")
%zd
Py_stamanho_t
Equivale exatamente ao
printf("%zd")
.%zu
tamanho_t
Equivale exatamente ao
printf("%zu")
.%i
int
Equivale exatamente ao
printf("%i")
.%x
int
Equivale exatamente ao
printf("%x")
.%s
caracter*
Uma matriz de caracteres C com terminação nula.
%p
vazio*
A representação hexadecimal de um ponteiro C. Principalmente equivalente a
printf("%p")
exceto que é garantido que comece com o literal0x
independentemente do que oprintf
da plataforma ceda.Um caractere de formato não reconhecido faz com que todo o resto da sequência de formato seja copiado como é para o objeto resultante e todos os argumentos extras sejam descartados.
-
PyObject*
PyBytes_FromFormatV
(const char *format, va_list vargs)¶ Idêntico a
PyBytes_FromFormat()
exceto que é preciso exatamente dois argumentos.
-
PyObject*
PyBytes_FromObject
(PyObject *o)¶ Retorna a representação de bytes do objeto o que implementa o protocolo de buffer.
-
Py_ssize_t
PyBytes_GET_SIZE
(PyObject *o)¶ Forma macro de
PyBytes_Size()
mas sem verificação de erro.
-
char*
PyBytes_AsString
(PyObject *o)¶ Retorna um ponteiro para o conteúdo de o. O ponteiro refere-se ao buffer interno de o, que consiste em
len(o) + 1
bytes. O último byte no buffer é sempre nulo, independentemente de haver outros bytes nulos. Os dados não devem ser modificados de forma alguma, a menos que o objeto tenha sido criado apenas usandoPyBytes_FromStringAndSize(NULL, size)
. Não deve ser desalinhado. Se o não for um objeto de bytes,PyBytes_AsString()
retorna NULL e eleva: exc:` TypeError`.
-
char*
PyBytes_AS_STRING
(PyObject *string)¶ Forma macro de: c: func: PyBytes_AsString mas sem verificação de erro.
-
int
PyBytes_AsStringAndSize
(PyObject *obj, char **buffer, Py_ssize_t *length)¶ Retornar os conteúdos terminados nulos do objeto obj através das variáveis de saída * buffer* e length.
Se length for NULL, o objeto bytes pode não conter bytes nulos incorporados; se o fizer, a função retorna
-1
e a: exc: ValueError é gerado.O buffer refere-se a um buffer interno de obj *, que inclui um byte nulo adicional no final (não contado em *comprimento). Os dados não devem ser modificados de forma alguma, a menos que o objeto tenha sido criado apenas usando
PyBytes_FromStringAndSize(NULL, size)
. Não deve ser desalinhado. Se obj não é um objeto bytes, c: func: PyBytes_AsStringAndSize retorna-1
e eleva: exc:` TypeError`.Alterado na versão 3.5: Anteriormente: exc: TypeError foi criado quando os bytes nulos incorporados foram encontrados no objeto bytes.
-
void
PyBytes_Concat
(PyObject **bytes, PyObject *newpart)¶ Crie um novo objeto bytes em *bytes contendo o conteúdo de newpart anexado a bytes; o chamador terá a nova referência. A referência ao valor antigo de bytes será roubada. Se o novo objeto não puder ser criado, a referência antiga para bytes ainda será descartada e o valor de *bytes será definido como NULL; a exceção apropriada será definida.
-
void
PyBytes_ConcatAndDel
(PyObject **bytes, PyObject *newpart)¶ Crie um novo objeto bytes em *bytes contendo o conteúdo de newpart anexado a bytes. Esta versão diminui a contagem de newpart.
-
int
_PyBytes_Resize
(PyObject **bytes, Py_ssize_t newsize)¶ Uma maneira de redimensionar um objeto bytes mesmo que seja “imutável”. Use apenas isso para criar um novo objeto de bytes; não use isso se os bytes já podem ser conhecidos em outras partes do código. É um erro ao chamar essa função se o preenchimento no objeto bytes de entrada não for um. Passe o endereço de um objeto de bytes existente como um lvalue (pode ser escrito em) e o novo tamanho desejado. Em êxito, *bytes contém o objeto de bytes redimensionados e
0
é retornado; o endereço em *bytes pode diferir do seu valor de entrada. Se a reatribuição falhar, o objeto bytes original em *bytes é desalocado, *bytes é definido como NULL,MemoryError
está definido e-1
é retornado.