Bytes Objects

当期望使用 byte 参数时,这些函数会引发TypeError,并使用 non-bytes 参数进行调用。

返回一个新的字节对象,其中包含字符串* v 的副本作为成功值,失败则返回NULL。参数 v *不得为NULL;它不会被检查。

返回一个新的字节对象,成功时返回字符串* v 作为副本,成功时返回字符串 len ,失败则返回NULL。如果 v *为NULL,则字节对象的内容未初始化。

采取 C printf()样式的* format 字符串和可变数量的参数,计算所得 Python 字节对象的大小,并返回带有格式化后的值的字节对象。变量参数必须是 C 类型,并且必须与 format *字符串中的格式字符完全对应。允许使用以下格式字符:

Format Characters Type Comment
%% n/a Literals%字符。
%c int 一个字节,表示为 C int。
%d int 等效于printf("%d")[1]
%u unsigned int 等效于printf("%u")[1]
%ld long 等效于printf("%ld")[1]
%lu unsigned long 等效于printf("%lu")[1]
%zd Py_ssize_t 等效于printf("%zd")[1]
%zu size_t 等效于printf("%zu")[1]
%i int 等效于printf("%i")[1]
%x int 等效于printf("%x")[1]
%s const char* 空终止的 C 字符数组。
%p const void* C 指针的十六进制表示。除平台printf产生什么结果外,它保证以立即数0x开头,因此与printf("%p")基本等效。

无法识别的格式字符会导致将格式字符串的其余所有内容原样复制到结果对象,并丢弃所有多余的参数。

PyBytes_FromFormat()相同,除了它只接受两个参数。

返回实现缓冲区协议的对象* o *的字节表示形式。

如果* length *为NULL,则 bytes 对象不能包含嵌入的空字节;如果是,函数将返回-1并引发ValueError

该缓冲区引用* obj 的内部缓冲区,该缓冲区的末尾包括一个附加的空字节(不计入 length )。除非以PyBytes_FromStringAndSize(NULL, size)创建对象,否则不得以任何方式修改数据。不能释放它。如果 obj *根本不是字节对象,则PyBytes_AsStringAndSize()返回-1并引发TypeError

在版本 3.5 中进行了更改:以前,在 bytes 对象中遇到嵌入式空字节时,引发了TypeError

首页