Объекты кортежей¶Tuple Objects
-
PyTypeObject
PyTuple_Type¶ Этот экземпляр
PyTypeObjectпредставляет тип кортежа Python; это тот же объект, что иtupleиtypes.TupleTypeв слое Python.
-
int
PyTuple_Check(PyObject *p)¶ Возвращает истину, если p является объектом кортежа или экземпляром подтипа типа tuple type.
Изменено в версии 2.2: Теперь допускаются подтипы.
-
int
PyTuple_CheckExact(PyObject *p)¶ Возвращает истину, если p является объектом кортежа, но не экземпляром подтипа tuple type.
Новое в версии 2.2.
-
PyObject*
PyTuple_New(Py_ssize_t len)¶ - Возвращаемое значение: новая ссылка.
Возвращает новый объект-кортеж размера len или NULL в случае ошибки.
Изменено в версии 2.5: Эта функция использовала тип
intдля len. Это может потребовать изменений в вашем коде для корректной поддержки 64-битных систем.
-
PyObject*
PyTuple_Pack(Py_ssize_t n, ...)¶ - Возвращаемое значение: новая ссылка.
Возвращает новый объект-кортеж размера n или NULL в случае ошибки. Значения кортежа инициализируются последующими n аргументами C, указывающими на объекты Python.
PyTuple_Pack(2, a, b)эквивалентенPy_BuildValue("(OO)", a, b).Новое в версии 2.4.
Изменено в версии 2.5: Эта функция использовала тип
intдля n. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.
-
Py_ssize_t
PyTuple_Size(PyObject *p)¶ Принимает указатель на объект кортежа и возвращает размер этого кортежа.
Изменено в версии 2.5: Эта функция возвращала тип
int. Возможно, потребуется внести изменения в код для корректной поддержки 64-битных систем.
-
Py_ssize_t
PyTuple_GET_SIZE(PyObject *p)¶ Возвращает размер кортежа p, который не должен быть NULL и должен указывать на кортеж; проверка ошибок не выполняется.
Изменено в версии 2.5: Эта функция возвращала тип
int. Возможно, потребуется внести изменения в код для корректной поддержки 64-битных систем.
-
PyObject*
PyTuple_GetItem(PyObject *p, Py_ssize_t pos)¶ - Возвращаемое значение: заимствованная ссылка.
Возвращает объект на позиции pos в кортеже, на который указывает p. Если pos находится вне границ, возвращает NULL и устанавливает исключение
IndexError.Изменено в версии 2.5: Эта функция использовала тип
intдля pos. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.
-
PyObject*
PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)¶ - Возвращаемое значение: заимствованная ссылка.
Как
PyTuple_GetItem(), но не проверяет свои аргументы.Изменено в версии 2.5: Эта функция использовала тип
intдля pos. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.
-
PyObject*
PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)¶ - Возвращаемое значение: новая ссылка.
Возвращает срез кортежа, на который указывает p, между low и high, или NULL в случае ошибки. Это эквивалентно выражению Python
p[low:high]. Индексация с конца списка не поддерживается.Изменено в версии 2.5: Эта функция использовала тип
intдля low и high. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.
-
int
PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶ Вставляет ссылку на объект o в позицию pos кортежа, на который указывает p. В случае успеха возвращает
0. Если pos выходит за границы, возвращает-1и устанавливает исключениеIndexError.Примечание
Эта функция «крадет» ссылку на o и удаляет ссылку на элемент, уже находящийся в кортеже на соответствующей позиции.
Изменено в версии 2.5: Эта функция использовала тип
intдля pos. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.
-
void
PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)¶ Как
PyTuple_SetItem(), но без проверки ошибок; должен использоваться только для заполнения только что созданных кортежей.Примечание
Этот макрос «перехватывает» ссылку на o и, в отличие от
PyTuple_SetItem(), не отбрасывает ссылку на заменяемый элемент; любая ссылка в кортеже на позиции pos будет утеряна.Изменено в версии 2.5: Эта функция использовала тип
intдля pos. Это может потребовать изменений в коде для корректной поддержки 64-битных систем.
-
int
_PyTuple_Resize(PyObject **p, Py_ssize_t newsize)¶ Can be used to resize a tuple. newsize will be the new length of the tuple. Because tuples are supposed to be immutable, this should only be used if there is only one reference to the object. Do not use this if the tuple may already be known to some other part of the code. The tuple will always grow or shrink at the end. Think of this as destroying the old tuple and creating a new one, only more efficiently. Returns
0on success. Client code should never assume that the resulting value of*pwill be the same as before calling this function. If the object referenced by*pis replaced, the original*pis destroyed. On failure, returns-1and sets*pto NULL, and raisesMemoryErrororSystemError.Изменено в версии 2.2: Удалён неиспользуемый третий параметр, last_is_sticky.
Изменено в версии 2.5: Эта функция использовала тип
intдля newsize. Возможно, потребуются изменения в вашем коде для корректной поддержки 64-битных систем.
-
int
PyTuple_ClearFreeList()¶ Очищает список свободных элементов. Возвращает общее количество освобождённых элементов.
Новое в версии 2.6.