Протокол послідовності¶
-
int
PySequence_Check(PyObject *o)¶ Return
1if the object provides the sequence protocol, and0otherwise. Note that it returns1for Python classes with a__getitem__()method, unless they aredictsubclasses, since in general it is impossible to determine what type of keys the class supports. This function always succeeds.
-
Py_ssize_t
PySequence_Size(PyObject *o)¶ -
Py_ssize_t
PySequence_Length(PyObject *o)¶ Повертає кількість об’єктів у послідовності o в разі успіху та
-1в разі невдачі. Це еквівалентно виразу Pythonlen(o).
-
PyObject*
PySequence_Concat(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає конкатенацію o1 і o2 у разі успіху та
NULLу разі невдачі. Це еквівалент виразу Pythono1 + o2.
-
PyObject*
PySequence_Repeat(PyObject *o, Py_ssize_t count)¶ - Return value: New reference.
Повертає результат повторення об’єкта послідовності o count разів або
NULLу разі помилки. Це еквівалент виразу Pythono * count.
-
PyObject*
PySequence_InPlaceConcat(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає конкатенацію o1 і o2 у разі успіху та
NULLу разі невдачі. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент виразу Pythono1 += o2.
-
PyObject*
PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)¶ - Return value: New reference.
Повертає результат повторення об’єкта послідовності o count разів або
NULLу разі помилки. Операція виконується на місці, якщо o її підтримує. Це еквівалент виразу Pythono *= count.
-
PyObject*
PySequence_GetItem(PyObject *o, Py_ssize_t i)¶ - Return value: New reference.
Повертає i-й елемент o або
NULLу разі помилки. Це еквівалент виразу Pythono[i].
-
PyObject*
PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶ - Return value: New reference.
Повертає зріз об’єкта послідовності o між i1 і i2 або
NULLу разі помилки. Це еквівалент виразу Pythono[i1:i2].
-
int
PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v)¶ Призначте об’єкт v до iго елемента o. Викликати виняток і повертати
-1у разі помилки; повернути0в разі успіху. Це еквівалент оператора Pythono[i] = v. Ця функція не викрадає посилання на v.Якщо v має значення
NULL, елемент видаляється, але ця функція застаріла на користь використанняPySequence_DelItem().
-
int
PySequence_DelItem(PyObject *o, Py_ssize_t i)¶ Видалити ith елемент об’єкта o. Повертає
-1у разі помилки. Це еквівалент оператора Pythondel 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у разі помилки. Це еквівалент оператора Pythondel o[i1:i2].
-
Py_ssize_t
PySequence_Count(PyObject *o, PyObject *value)¶ Повертає кількість входжень value у o, тобто повертає кількість ключів, для яких
o[key] == value. У разі помилки поверніть-1. Це еквівалентно виразу Pythono.count(value).
-
int
PySequence_Contains(PyObject *o, PyObject *value)¶ Визначте, чи o містить value. Якщо елемент у o дорівнює value, поверніть
1, інакше поверніть0. У разі помилки повертає-1. Це еквівалентно виразу Pythonзначення в o.
-
Py_ssize_t
PySequence_Index(PyObject *o, PyObject *value)¶ Повертає перший індекс i, для якого
o[i] == значення. У разі помилки повертає-1. Це еквівалентно виразу Pythono.index(value).
-
PyObject*
PySequence_List(PyObject *o)¶ - Return value: New reference.
Повертає об’єкт списку з тим же вмістом, що й послідовність або ітерація o, або
NULLу разі помилки. Повернений список гарантовано буде новим. Це еквівалентно виразу Pythonlist(o).
-
PyObject*
PySequence_Tuple(PyObject *o)¶ - Return value: New reference.
Повертає об’єкт кортежу з тим самим вмістом, що й послідовність або повторюваний o, або
NULLу разі помилки. Якщо o є кортежем, буде повернуто нове посилання, інакше буде створено кортеж із відповідним вмістом. Це еквівалентно виразу Pythontuple(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 є істинним, і без коригування негативних індексів.