Протокол послідовності¶
-
int PySequence_Check(PyObject *o)¶
- Part of the Stable ABI.
Return
1
if the object provides the sequence protocol, and0
otherwise. Note that it returns1
for Python classes with a__getitem__()
method, unless they aredict
subclasses, 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)¶
- Part of the Stable ABI.
Повертає кількість об’єктів у послідовності o в разі успіху та
-1
в разі невдачі. Це еквівалентно виразу Pythonlen(o)
.
-
PyObject *PySequence_Concat(PyObject *o1, PyObject *o2)¶
- Return value: New reference. Part of the Stable ABI.
Повертає конкатенацію o1 і o2 у разі успіху та
NULL
у разі невдачі. Це еквівалент виразу Pythono1 + o2
.
-
PyObject *PySequence_Repeat(PyObject *o, Py_ssize_t count)¶
- Return value: New reference. Part of the Stable ABI.
Повертає результат повторення об’єкта послідовності o count разів або
NULL
у разі помилки. Це еквівалент виразу Pythono * count
.
-
PyObject *PySequence_InPlaceConcat(PyObject *o1, PyObject *o2)¶
- Return value: New reference. Part of the Stable ABI.
Повертає конкатенацію o1 і o2 у разі успіху та
NULL
у разі невдачі. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент виразу Pythono1 += o2
.
-
PyObject *PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)¶
- Return value: New reference. Part of the Stable ABI.
Повертає результат повторення об’єкта послідовності o count разів або
NULL
у разі помилки. Операція виконується на місці, якщо o її підтримує. Це еквівалент виразу Pythono *= count
.
-
PyObject *PySequence_GetItem(PyObject *o, Py_ssize_t i)¶
- Return value: New reference. Part of the Stable ABI.
Повертає i-й елемент o або
NULL
у разі помилки. Це еквівалент виразу Pythono[i]
.
-
PyObject *PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶
- Return value: New reference. Part of the Stable ABI.
Повертає зріз об’єкта послідовності o між i1 і i2 або
NULL
у разі помилки. Це еквівалент виразу Pythono[i1:i2]
.
-
int PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v)¶
- Part of the Stable ABI.
Призначте об’єкт v до iго елемента o. Викликати виняток і повертати
-1
у разі помилки; повернути0
в разі успіху. Це еквівалент оператора Pythono[i] = v
. Ця функція не викрадає посилання на v.Якщо v має значення
NULL
, елемент видаляється, але ця функція застаріла на користь використанняPySequence_DelItem()
.
-
int PySequence_DelItem(PyObject *o, Py_ssize_t i)¶
- Part of the Stable ABI.
Видалити ith елемент об’єкта o. Повертає
-1
у разі помилки. Це еквівалент оператора Pythondel o[i]
.
-
int PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, PyObject *v)¶
- Part of the Stable ABI.
Призначте об’єкт послідовності v фрагменту в об’єкті послідовності o від i1 до i2. Це еквівалент оператора Python
o[i1:i2] = v
.
-
int PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶
- Part of the Stable ABI.
Видалити фрагмент у послідовному об’єкті o від i1 до i2. Повертає
-1
у разі помилки. Це еквівалент оператора Pythondel o[i1:i2]
.
-
Py_ssize_t PySequence_Count(PyObject *o, PyObject *value)¶
- Part of the Stable ABI.
Повертає кількість входжень value у o, тобто повертає кількість ключів, для яких
o[key] == value
. У разі помилки поверніть-1
. Це еквівалентно виразу Pythono.count(value)
.
-
int PySequence_Contains(PyObject *o, PyObject *value)¶
- Part of the Stable ABI.
Визначте, чи o містить value. Якщо елемент у o дорівнює value, поверніть
1
, інакше поверніть0
. У разі помилки повертає-1
. Це еквівалентно виразу Pythonзначення в o
.
-
Py_ssize_t PySequence_Index(PyObject *o, PyObject *value)¶
- Part of the Stable ABI.
Повертає перший індекс i, для якого
o[i] == значення
. У разі помилки повертає-1
. Це еквівалентно виразу Pythono.index(value)
.
-
PyObject *PySequence_List(PyObject *o)¶
- Return value: New reference. Part of the Stable ABI.
Повертає об’єкт списку з тим же вмістом, що й послідовність або ітерація o, або
NULL
у разі помилки. Повернений список гарантовано буде новим. Це еквівалентно виразу Pythonlist(o)
.
-
PyObject *PySequence_Tuple(PyObject *o)¶
- Return value: New reference. Part of the Stable ABI.
Повертає об’єкт кортежу з тим самим вмістом, що й послідовність або повторюваний o, або
NULL
у разі помилки. Якщо o є кортежем, буде повернуто нове посилання, інакше буде створено кортеж із відповідним вмістом. Це еквівалентно виразу Pythontuple(o)
.
-
PyObject *PySequence_Fast(PyObject *o, const char *m)¶
- Return value: New reference. Part of the Stable ABI.
Повертає послідовність або ітерацію 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 є істинним, і без коригування негативних індексів.