Объекты-кортежи
-
type PyTupleObject -
Этот подтип
PyObjectпредставляет объект-кортеж Python.
-
PyTypeObject PyTuple_Type -
Входит в стабильный ABI.
Этот экземпляр
PyTypeObjectпредставляет тип кортежей Python; на уровне Python это тот же объект, что иtuple.
-
int PyTuple_Check(PyObject *p) -
Возвращает true, если p является объектом-кортежем или экземпляром подтипа типа кортежей. Эта функция всегда выполняется успешно.
-
int PyTuple_CheckExact(PyObject *p) -
Возвращает true, если p является объектом-кортежем, но не экземпляром подтипа типа кортежей. Эта функция всегда выполняется успешно.
-
PyObject *PyTuple_New(Py_ssize_t len) -
Возвращаемое значение: новая ссылка.Входит в стабильный ABI.
Возвращает новый объект-кортеж размера len или
NULL, если при ошибке установлено исключение.
-
PyObject *PyTuple_Pack(Py_ssize_t n, ...) -
Возвращаемое значение: новая ссылка.Входит в стабильный ABI.
Возвращает новый объект-кортеж размера n или
NULL, если при ошибке установлено исключение. Элементы кортежа инициализируются следующими n аргументами C, указывающими на объекты Python.PyTuple_Pack(2, a, b)эквивалентноPy_BuildValue("(OO)", a, b).
-
Py_ssize_t PyTuple_Size(PyObject *p) -
Входит в стабильный ABI.
Принимает указатель на объект-кортеж и возвращает размер этого кортежа. В случае ошибки возвращает
-1и устанавливает исключение.
-
Py_ssize_t PyTuple_GET_SIZE(PyObject *p) -
Аналогична
PyTuple_Size(), но не выполняет проверку ошибок.
-
PyObject *PyTuple_GetItem(PyObject *p, Py_ssize_t pos) -
Возвращаемое значение: заимствованная ссылка.Входит в стабильный ABI.
Возвращает объект в позиции pos кортежа, на который указывает p. Если pos отрицателен или выходит за границы, возвращает
NULLи устанавливает исключениеIndexError.Возвращаемая ссылка заимствована у кортежа p (то есть она действительна, только пока у вас есть ссылка на p). Чтобы получить сильную ссылку, используйте
Py_NewRef(PyTuple_GetItem(...))илиPySequence_GetItem().
-
PyObject *PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos) -
Возвращаемое значение: заимствованная ссылка.
Аналогична
PyTuple_GetItem(), но не проверяет аргументы.
-
PyObject *PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high) -
Возвращаемое значение: новая ссылка.Входит в стабильный ABI.
Возвращает срез кортежа, на который указывает p, от low до high или
NULL, если при ошибке установлено исключение.Это эквивалентно выражению Python
p[low:high]. Индексация с конца кортежа не поддерживается.
-
int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o) -
Входит в стабильный ABI.
Вставляет ссылку на объект o в позицию pos кортежа, на который указывает p. В случае успеха возвращает
0. Если pos выходит за границы, возвращает-1и устанавливает исключениеIndexError.Примечание
Эта функция «забирает» ссылку на o и удаляет ссылку на элемент, который уже находился в кортеже в указанной позиции.
-
void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o) -
Аналогична
PyTuple_SetItem(), но не выполняет проверку ошибок и должна использоваться только для заполнения новых кортежей.Примечание
Эта функция «забирает» ссылку на o и, в отличие от
PyTuple_SetItem(), не удаляет ссылку на заменяемый элемент; любая ссылка в кортеже в позиции pos будет потеряна.
-
int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize) -
Может использоваться для изменения размера кортежа. newsize — новая длина кортежа. Поскольку кортежи, предполагается, неизменяемы, эту функцию следует использовать, только если у объекта есть единственная ссылка. Не используйте её, если кортеж уже может быть известен другой части кода. Кортеж всегда увеличивается или уменьшается в конце. Считайте, что старая версия кортежа уничтожается и создаётся новая, только более эффективно. В случае успеха возвращает
0. Клиентский код не должен предполагать, что результирующее значение*pостанется таким же, как до вызова этой функции. Если объект, на который ссылается*p, заменяется, исходный*pуничтожается. В случае ошибки возвращает-1, устанавливает*pвNULLи вызываетMemoryErrorилиSystemError.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/c-api/tuple.html