Объекты-кортежи
-
type PyTupleObject -
Этот подтип
PyObjectпредставляет объект-кортеж Python.
-
PyTypeObject PyTuple_Type -
Часть стабильного ABI.
Этот экземпляр
PyTypeObjectпредставляет тип кортежа Python; это тот же объект, что иtupleна уровне Python.
-
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(), но не выполняет проверку ошибок и должна использоваться только для заполнения новых кортежей.Проверка выхода за границы выполняется как утверждение, если Python собран в режиме отладки или с параметром
with assertions.Примечание
Эта функция «забирает» ссылку на o и, в отличие от
PyTuple_SetItem(), не удаляет ссылку на заменяемый элемент; любая ссылка на элемент кортежа в позиции pos будет утекать.
-
int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize) -
Можно использовать для изменения размера кортежа. newsize будет новой длиной кортежа. Поскольку кортежи предполагается считать неизменяемыми, эту функцию следует использовать, только если у объекта есть единственная ссылка. Не используйте её, если кортеж уже может быть известен другой части кода. Кортеж всегда увеличивается или уменьшается в конце. Считайте, что старый кортеж уничтожается, а новый создаётся, но более эффективно. В случае успеха возвращает
0. Клиентский код не должен предполагать, что результирующее значение*pостанется таким же, как до вызова этой функции. Если объект, на который указывает*p, заменяется, исходный*pуничтожается. В случае ошибки возвращает-1, устанавливает*pвNULLи вызывает исключениеMemoryErrorилиSystemError.
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/c-api/tuple.html