Sequence Protocol

成功时返回* o1 o2 *的串联,失败时返回NULL。这等效于 Python 表达式o1 + o2

返回重复序列对象* o * * count *次的结果,如果失败则返回NULL。这等效于 Python 表达式o * count

成功时返回* o1 o2 的串联,失败时返回NULL。如果 o1 *支持,则操作就地完成。这等效于 Python 表达式o1 += o2

返回重复序列对象* o * * count 次的结果,如果失败则返回NULL。当 o *支持时,该操作“就地”完成。这等效于 Python 表达式o *= count

返回* o 的第 i *个元素,失败则返回NULL。这等效于 Python 表达式o[i]

返回序列对象* o i1 i2 *之间的切片,或者在失败时返回NULL。这等效于 Python 表达式o[i1:i2]

如果* v *为NULL,则删除该元素,但是不建议使用此Function,而推荐使用PySequence_DelItem()

返回具有与序列相同的内容或可迭代的* o *或失败的NULL的列表对象。返回的列表保证是新的。这等效于 Python 表达式list(o)

返回具有与序列相同的内容或可迭代* o 或失败的NULL的 Tuples 对象。如果 o *是一个 Tuples,则将返回一个新的引用,否则将使用适当的内容构造一个 Tuples。这等效于 Python 表达式tuple(o)

返回该序列或可迭代的* o 作为其他PySequence_Fast*系列函数可用的对象。如果对象不是序列或不可迭代对象,则以 m *作为消息文本引发TypeError。失败时返回NULL

之所以命名PySequence_Fast*函数是因为它们假定* o PyTupleObjectPyListObject并直接访问 o *的数据字段。

作为 CPython 实现的详细信息,如果* o *已经是序列或列表,则将返回它。

假设* o PySequence_Fast()返回, o 不是NULL,并且 i 在范围之内,则返回 o 的第 i *个元素。

注意,如果调整列表大小,则重新分配可能会重新定位 items 数组。因此,仅在 Sequences 无法更改的上下文中使用基础数组指针。

失败时返回* o NULL的第 i 个元素。 PySequence_GetItem()的形式较快,但无需检查 o *上的PySequence_Check()是否为真,并且无需对负索引进行调整。

首页