元组对象¶
-
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型
意义
nameconst char *结构序列类型的名称
docconst char *指向类型或的docstring的指针
NULL省略fieldsPyStructSequence_Field *指针指向
NULL-以新类型的字段名终止的数组n_in_sequenceintPython端可见的字段数(如果用作元组)
-
type PyStructSequence_Field¶
描述结构序列的字段。由于结构序列被建模为元组,因此所有字段的类型都为 PyObject* . 中的索引
fields数组PyStructSequence_Desc确定描述结构序列的哪个字段。场
C型
意义
nameconst char *字段名或
NULL若要结束命名字段列表,请设置为PyStructSequence_UnnamedField无名docconst 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 .