元组对象¶
-
PyTypeObject PyTuple_Type¶
此实例
PyTypeObject
表示python元组类型;它与tuple
在python层中。
-
PyObject *PyTuple_Pack(Py_ssize_t n, ...)¶
- Return value: New reference.
返回大小为的新元组对象 n 或
NULL
失败论。元组值初始化为 n c指向python对象的参数。PyTuple_Pack(2, a, b)
等于Py_BuildValue("(OO)", a, b)
.
-
PyObject *PyTuple_GetItem(PyObject *p, Py_ssize_t pos)¶
- Return value: Borrowed reference.
返回位置处的对象 pos 指向的元组中 p 。如果 pos 为负或超出界限,则返回
NULL
并设置一个IndexError
例外情况。
-
PyObject *PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)¶
- Return value: Borrowed reference.
类似于
PyTuple_GetItem()
,但不检查其参数。
-
PyObject *PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)¶
- Return value: New reference.
返回由 p 之间 low 和 high 或
NULL
失败时。这相当于python表达式p[low:high]
. 不支持从列表末尾建立索引。
-
int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶
插入对对象的引用 o 就位 pos 指向的元组的 p . 返回
0
在成功的时候。如果 pos 越界,返回-1
并设置一个IndexError
例外。注解
此函数“窃取”对 o 并放弃对位于受影响位置的元组中已存在的项的引用。
-
void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)¶
类似于
PyTuple_SetItem()
,但不进行错误检查,应该 only 用于填充全新的元组。注解
这个宏“窃取”了对 o ,而且,不像
PyTuple_SetItem()
做 not 放弃对要替换的任何项的引用;元组中位置处的任何引用 pos 将被泄露。
-
int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize)¶
可用于调整元组的大小。 新闻化 将是元组的新长度。因为元组是 想象上的 要保持不变,只应在对对象只有一个引用的情况下使用此选项。做 not 如果代码的其他部分可能已经知道元组,则使用此选项。元组在结尾处总是增长或收缩。把这看成是破坏旧的元组并创建一个新的元组,只会更有效率。退换商品
0
论成功。客户机代码不应假定*p
将与调用此函数之前相同。如果被引用的对象*p
被替换,原始*p
被摧毁。失败时,返回-1
集*p
到NULL
并提出MemoryError
或SystemError
.
结构序列对象¶
结构序列对象是C等价于 namedtuple()
对象,即其项也可以通过属性访问的序列。要创建结构序列,首先必须创建特定的结构序列类型。
-
PyTypeObject *PyStructSequence_NewType(PyStructSequence_Desc *desc)¶
- Return value: New reference.
从中的数据创建新的结构序列类型 desc ,如下所述。结果类型的实例可以用
PyStructSequence_New()
.
-
void PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc)¶
初始化结构序列类型 type 从 desc 就位。
-
int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc)¶
一样
PyStructSequence_InitType
但回报0
论成功与否-1
失败论。3.4 新版功能.
-
type PyStructSequence_Desc¶
包含要创建的结构序列类型的元信息。
场
C型
意义
name
const char *
结构序列类型的名称
doc
const char *
指向类型或的docstring的指针
NULL
省略fields
PyStructSequence_Field *
指针指向
NULL
-以新类型的字段名终止的数组n_in_sequence
int
Python端可见的字段数(如果用作元组)
-
type PyStructSequence_Field¶
描述结构序列的字段。由于结构序列被建模为元组,因此所有字段的类型都为 PyObject* . 中的索引
fields
数组PyStructSequence_Desc
确定描述结构序列的哪个字段。场
C型
意义
name
const char *
字段名或
NULL
若要结束命名字段列表,请设置为PyStructSequence_UnnamedField
无名doc
const char *
字段docstring或
NULL
省略
-
const char *const PyStructSequence_UnnamedField¶
字段名未命名的特殊值。
在 3.9 版更改: 类型已从
char *
.
-
PyObject *PyStructSequence_New(PyTypeObject *type)¶
- Return value: New reference.
创建的实例 type ,必须是用创建的
PyStructSequence_NewType()
.
-
PyObject *PyStructSequence_GetItem(PyObject *p, Py_ssize_t pos)¶
- Return value: Borrowed reference.
将对象返回到位置 pos 在由指向的结构序列中 p . 未执行边界检查。
-
PyObject *PyStructSequence_GET_ITEM(PyObject *p, Py_ssize_t pos)¶
- Return value: Borrowed reference.
宏等效于
PyStructSequence_GetItem()
.
-
void PyStructSequence_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶
在索引处设置字段 pos 结构序列的 p 重视 o . 类似于
PyTuple_SET_ITEM()
,这只能用于填充全新的实例。注解
此函数“窃取”对 o .
-
void PyStructSequence_SET_ITEM(PyObject *p, Py_ssize_t *pos, PyObject *o)¶
宏等效于
PyStructSequence_SetItem()
.注解
此函数“窃取”对 o .