Протокол послідовності¶
-
int
PySequence_Check
(PyObject *o)¶ 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)¶ Повертає кількість об’єктів у послідовності 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 є істинним, і без коригування негативних індексів.