Протокол последовательности¶
- 
int 
PySequence_Check(PyObject *o)¶ Возвращает
1, если объект предоставляет протокол последовательности, и0в противном случае. Обратите внимание, что возвращается1для Python классов с методом__getitem__(), если они неdictподклассы с тех пор в общем случае, невозможно определить то, что тип ключей это поддерживает. Эта функция всегда выполняется успешно.
- 
Py_ssize_t 
PySequence_Size(PyObject *o)¶ - 
Py_ssize_t 
PySequence_Length(PyObject *o)¶ Возвращает количество объектов в последовательности o при успехе и
-1при сбое. Это эквивалентноlen(o)выражению Python.
- 
PyObject* 
PySequence_Concat(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Возвращает конкатенацию o1 и o2 при успехе, а
NULLпри неудаче. Это Python эквивалент выраженияo1 + o2. 
- 
PyObject* 
PySequence_Repeat(PyObject *o, Py_ssize_t count)¶ - Return value: New reference.
Возвращает результат повторения объекта последовательности o count раз или
NULLпри сбое. Это Python эквивалент выраженияo * count. 
- 
PyObject* 
PySequence_InPlaceConcat(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Возвращает конкатенацию o1 и o2 при успехе и
NULLпри неудаче. Операция выполняется на месте тогда, когда o1 ее поддерживает. Это Python эквивалент выраженияo1 += o2. 
- 
PyObject* 
PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)¶ - Return value: New reference.
Возвращает результат повторения объекта последовательности o count раз или
NULLпри сбое. Операция выполняется на месте тогда, когда o ее поддерживает. Это Python эквивалент выраженияo *= count. 
- 
PyObject* 
PySequence_GetItem(PyObject *o, Py_ssize_t i)¶ - Return value: New reference.
Возвращает i-й элемент o, или
NULLпри отказе. Это Python эквивалент выраженияo[i]. 
- 
PyObject* 
PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶ - Return value: New reference.
Возвращает фрагмент объекта последовательности, o между i1 и i2, или
NULLпри сбое. Это Python эквивалент выраженияo[i1:i2]. 
- 
int 
PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v)¶ Присвоить i элементу объекта o элемент v. Поднять исключение и вернуть
-1при сбое; возвращает0при успехе. Это Python эквивалент инструкцияo[i] = v. Эта функция не крадет ссылку на v.Если v
NULL, элемент удаляется, однако эта функция устаревает в пользу использованияPySequence_DelItem().
- 
int 
PySequence_DelItem(PyObject *o, Py_ssize_t i)¶ Удалить iый элемент объекта o. Возвращает
-1при отказе. Это Python эквивалент инструкцииdel o[i].
- 
int 
PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, PyObject *v)¶ Присвоить v объект последовательности слайса в o объекте последовательности от i1 до i2. Это Python эквивалент инструкции
o[i1:i2] = v.
- 
int 
PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶ Удалить фрагмент в последовательности o объекта из i1 в i2. Возвращает
-1при отказе. Это Python эквивалент инструкцииdel o[i1:i2].
- 
Py_ssize_t 
PySequence_Count(PyObject *o, PyObject *value)¶ Возвращает количество вхождений value в o, то есть возвращает количество ключей, для которых
o[key] == value. При отказе возвращает-1. Это эквивалент Python выражениюo.count(value).
- 
int 
PySequence_Contains(PyObject *o, PyObject *value)¶ Определить, содержит ли o value. Если элемент o равен value, возвращает
1, в противном случае возвращает0. При ошибке возвращает-1. Это эквивалентно Python выражениюvalue in o.
- 
Py_ssize_t 
PySequence_Index(PyObject *o, PyObject *value)¶ Возвращает первый индекс i для которого
o[i] == value. При ошибке возвращает-1. Это эквивалентно Python выражениюo.index(value).
- 
PyObject* 
PySequence_List(PyObject *o)¶ - Return value: New reference.
Возвращает объект списка с тем же содержимым, что и последовательность или итеративный o, или
NULLпри сбое. Возвращенный список гарантированно будет новым. Это эквивалентно Python выражениюlist(o). 
- 
PyObject* 
PySequence_Tuple(PyObject *o)¶ - Return value: New reference.
Возвращает объект кортежа с тем же содержимым, что и последовательность или итеративный o, или
NULLпри сбое. Если o кортеж, будет возвращена новая ссылка, в противном случае кортеж будет построен с соответствующим содержимым. Это эквивалентно Python выражениюtuple(o). 
- 
PyObject* 
PySequence_Fast(PyObject *o, const char *m)¶ - Return value: New reference.
Возвращает последовательность или итератор o как объект, используемый другим семейством функций
PySequence_Fast*. Если объект не является последовательностью или итерацией, вызываетсяTypeErrorс m в качестве текста сообщения. ВозвращаетNULLпри отказе.Таким образом,
PySequence_Fast*функции называются потому, что они предполагают, что o являетсяPyTupleObjectилиPyListObjectи имеют прямой доступ к полям данных o.В качестве детали реализации CPython, если o уже является последовательностью или списком, она будет возвращена.
 
- 
Py_ssize_t 
PySequence_Fast_GET_SIZE(PyObject *o)¶ Возвращает длину o, предполагая, что o было возвращено
PySequence_Fast()и что o не равноNULL. Размер также может быть получен путем вызоваPySequence_Size()на o, ноPySequence_Fast_GET_SIZE()работает быстрее, потому что он может предположить, что o является списком или кортежем.
- 
PyObject* 
PySequence_Fast_GET_ITEM(PyObject *o, Py_ssize_t i)¶ - Return value: Borrowed reference.
Возвращает iий элемент o, предполагая, что o был возвращен
PySequence_Fast(), o неNULL, и что i находится в пределах границ. 
- 
PyObject** 
PySequence_Fast_ITEMS(PyObject *o)¶ Возвращает базовый массив указателей PyObject. Предполагается, что o был возвращен
PySequence_Fast()и o не являетсяNULL.Обратите внимание, что при изменении размера списка перераспределение может привести к перемещению элементов массива. Таким образом, используйте базовый указатель массива только в контекстах, где последовательность не может измениться.
- 
PyObject* 
PySequence_ITEM(PyObject *o, Py_ssize_t i)¶ - Return value: New reference.
Возвращает i-й элемент o или
NULLпри отказе. Более быстрая формаPySequence_GetItem(), но без проверки истинностиPySequence_Check()на o и без корректировки на отрицательные индексы. 
