“Python/docs/3.9/c-api/bytearray”的版本间差异
来自菜鸟教程
Python/docs/3.9/c-api/bytearray
(autoload) |
小 (Page commit) |
||
第1行: | 第1行: | ||
+ | {{DISPLAYTITLE:字节数组对象 — Python 文档}} | ||
<div id="byte-array-objects" class="section"> | <div id="byte-array-objects" class="section"> | ||
<span id="bytearrayobjects"></span> | <span id="bytearrayobjects"></span> | ||
− | = | + | = 字节数组对象 = |
<span id="index-0" class="target"></span> | <span id="index-0" class="target"></span> | ||
− | ; | + | ; <span class="k"><span class="pre">type</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArrayObject</span></span></span><br /> |
− | |||
− | ; [[../type#c|PyTypeObject]] < | + | : [[../structures#c|PyObject]] 的这个子类型表示一个 Python 字节数组对象。 |
− | : | + | |
+ | ; [[../type#c|<span class="n"><span class="pre">PyTypeObject</span></span>]]<span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_Type</span></span></span><br /> | ||
+ | |||
+ | : [[../type#c|PyTypeObject]] 的这个实例代表 Python 字节数组类型; 它与 Python 层中的 [[../../library/stdtypes#bytearray|bytearray]] 是同一个对象。 | ||
<div id="type-check-macros" class="section"> | <div id="type-check-macros" class="section"> | ||
− | == | + | == 类型检查宏 == |
+ | |||
+ | ; <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_Check</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">o</span></span><span class="sig-paren">)</span><br /> | ||
+ | |||
+ | : 如果对象 ''o'' 是 bytearray 对象或 bytearray 类型的子类型的实例,则返回 true。 此功能总是成功。 | ||
− | ; int < | + | ; <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_CheckExact</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">o</span></span><span class="sig-paren">)</span><br /> |
− | |||
− | + | : 如果对象 ''o'' 是 bytearray 对象,但不是 bytearray 类型的子类型的实例,则返回 true。 此功能总是成功。 | |
− | : | ||
第25行: | 第30行: | ||
<div id="direct-api-functions" class="section"> | <div id="direct-api-functions" class="section"> | ||
− | == | + | == 直接 API 函数 == |
+ | |||
+ | ; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_FromObject</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">o</span></span><span class="sig-paren">)</span><br /> | ||
+ | |||
+ | : 从实现 [[../buffer#bufferobjects|缓冲区协议]] 的任何对象 ''o'' 返回一个新的字节数组对象。 | ||
+ | |||
+ | ; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_FromStringAndSize</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">string</span></span>, <span class="n"><span class="pre">Py_ssize_t</span></span><span class="w"> </span><span class="n"><span class="pre">len</span></span><span class="sig-paren">)</span><br /> | ||
+ | |||
+ | : 从 ''string'' 及其长度 ''len'' 创建一个新的字节数组对象。 失败时,返回 <code>NULL</code>。 | ||
+ | |||
+ | ; [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_Concat</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">a</span></span>, [[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">b</span></span><span class="sig-paren">)</span><br /> | ||
+ | |||
+ | : 连接字节数组 ''a'' 和 ''b'' 并返回一个带有结果的新字节数组。 | ||
− | < | + | ; <span class="n"><span class="pre">Py_ssize_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_Size</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">bytearray</span></span><span class="sig-paren">)</span><br /> |
− | < | ||
− | < | ||
− | < | ||
− | |||
− | + | : 检查 <code>NULL</code> 指针后返回 ''bytearray'' 的大小。 | |
− | |||
− | |||
− | |||
− | |||
− | < | + | ; <span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_AsString</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">bytearray</span></span><span class="sig-paren">)</span><br /> |
− | < | ||
− | < | ||
− | < | ||
− | + | : 检查 <code>NULL</code> 指针后,将 ''bytearray'' 的内容作为字符数组返回。 返回的数组总是附加一个额外的空字节。 | |
− | |||
− | ; | + | ; <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_Resize</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">bytearray</span></span>, <span class="n"><span class="pre">Py_ssize_t</span></span><span class="w"> </span><span class="n"><span class="pre">len</span></span><span class="sig-paren">)</span><br /> |
− | |||
− | + | : 将 ''bytearray'' 的内部缓冲区大小调整为 ''len''。 | |
− | : | ||
第57行: | 第60行: | ||
<div id="macros" class="section"> | <div id="macros" class="section"> | ||
− | == | + | == 宏 == |
+ | |||
+ | 这些宏以安全换取速度,并且不检查指针。 | ||
+ | |||
+ | ; <span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_AS_STRING</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">bytearray</span></span><span class="sig-paren">)</span><br /> | ||
+ | |||
+ | : [[#c.PyByteArray_AsString|PyByteArray_AsString()]] 的宏版本。 | ||
− | + | ; <span class="n"><span class="pre">Py_ssize_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PyByteArray_GET_SIZE</span></span></span><span class="sig-paren">(</span>[[../structures#c|<span class="n"><span class="pre">PyObject</span></span>]]<span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">bytearray</span></span><span class="sig-paren">)</span><br /> | |
− | + | : [[#c.PyByteArray_Size|PyByteArray_Size()]] 的宏版本。 | |
− | : | ||
− | |||
− | |||
+ | </div> | ||
</div> | </div> | ||
+ | <div class="clearer"> | ||
+ | |||
+ | |||
</div> | </div> | ||
− | [[Category:Python 3.9 | + | [[Category:Python 3.9 文档]] |
2021年10月31日 (日) 04:50的最新版本
字节数组对象
- type PyByteArrayObject
- PyObject 的这个子类型表示一个 Python 字节数组对象。
- PyTypeObject PyByteArray_Type
- PyTypeObject 的这个实例代表 Python 字节数组类型; 它与 Python 层中的 bytearray 是同一个对象。
类型检查宏
- int PyByteArray_Check(PyObject *o)
- 如果对象 o 是 bytearray 对象或 bytearray 类型的子类型的实例,则返回 true。 此功能总是成功。
- int PyByteArray_CheckExact(PyObject *o)
- 如果对象 o 是 bytearray 对象,但不是 bytearray 类型的子类型的实例,则返回 true。 此功能总是成功。
直接 API 函数
- 从实现 缓冲区协议 的任何对象 o 返回一个新的字节数组对象。
- PyObject *PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
- 从 string 及其长度 len 创建一个新的字节数组对象。 失败时,返回
NULL
。
- 连接字节数组 a 和 b 并返回一个带有结果的新字节数组。
- Py_ssize_t PyByteArray_Size(PyObject *bytearray)
- 检查
NULL
指针后返回 bytearray 的大小。
- char *PyByteArray_AsString(PyObject *bytearray)
- 检查
NULL
指针后,将 bytearray 的内容作为字符数组返回。 返回的数组总是附加一个额外的空字节。
- int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
- 将 bytearray 的内部缓冲区大小调整为 len。
宏
这些宏以安全换取速度,并且不检查指针。
- char *PyByteArray_AS_STRING(PyObject *bytearray)
- PyByteArray_AsString() 的宏版本。
- Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)
- PyByteArray_Size() 的宏版本。