mirror of
https://github.com/python/cpython.git
synced 2024-12-12 11:23:56 +08:00
7131fd957d
svn+ssh://pythondev@svn.python.org/python/trunk ........ r60876 | georg.brandl | 2008-02-17 16:14:10 +0100 (Sun, 17 Feb 2008) | 2 lines Fix function name. ........ r60877 | facundo.batista | 2008-02-17 17:21:13 +0100 (Sun, 17 Feb 2008) | 4 lines Now we handle different the backup copy, because of security issues regarding user/group and permissions. Fixes 1050828. ........ r60878 | facundo.batista | 2008-02-17 19:59:29 +0100 (Sun, 17 Feb 2008) | 4 lines Issue 2112. mmap does not raises EnvironmentError no more, but a subclass of it. Thanks John Lenton. ........ r60882 | amaury.forgeotdarc | 2008-02-17 21:56:31 +0100 (Sun, 17 Feb 2008) | 5 lines Compilation was broken on Windows since the introduction of Advanced String Formatting. Only PCBuild (vs9) was really tested. Changes for older compilers were done manually. ........ r60883 | georg.brandl | 2008-02-17 22:18:55 +0100 (Sun, 17 Feb 2008) | 2 lines #2133: fix HTML color spec. ........ r60884 | facundo.batista | 2008-02-18 04:43:43 +0100 (Mon, 18 Feb 2008) | 5 lines Issue #1916. Added isgenerator() and isgeneratorfunction() to inspect.py. Thanks Javi Mansilla for patch review and corrections. ........ r60885 | facundo.batista | 2008-02-18 13:48:43 +0100 (Mon, 18 Feb 2008) | 4 lines Issue 1224. Now we support again the double slash in the URL. Thanks Anthony Lenton. ........ r60887 | eric.smith | 2008-02-18 15:25:02 +0100 (Mon, 18 Feb 2008) | 1 line Temporarily removed float tests. See issue 1600. ........ r60891 | kristjan.jonsson | 2008-02-18 18:40:47 +0100 (Mon, 18 Feb 2008) | 1 line Perform correct handling of stack overflow for windows: Catch the correct exception code and reset the overflow condition when handled. ........
112 lines
3.4 KiB
ReStructuredText
112 lines
3.4 KiB
ReStructuredText
.. highlightlang:: c
|
|
|
|
.. _tupleobjects:
|
|
|
|
Tuple Objects
|
|
-------------
|
|
|
|
.. index:: object: tuple
|
|
|
|
|
|
.. ctype:: PyTupleObject
|
|
|
|
This subtype of :ctype:`PyObject` represents a Python tuple object.
|
|
|
|
|
|
.. cvar:: PyTypeObject PyTuple_Type
|
|
|
|
.. index:: single: TupleType (in module types)
|
|
|
|
This instance of :ctype:`PyTypeObject` represents the Python tuple type; it is
|
|
the same object as ``tuple`` and ``types.TupleType`` in the Python layer..
|
|
|
|
|
|
.. cfunction:: int PyTuple_Check(PyObject *p)
|
|
|
|
Return true if *p* is a tuple object or an instance of a subtype of the tuple
|
|
type.
|
|
|
|
|
|
.. cfunction:: int PyTuple_CheckExact(PyObject *p)
|
|
|
|
Return true if *p* is a tuple object, but not an instance of a subtype of the
|
|
tuple type.
|
|
|
|
|
|
.. cfunction:: PyObject* PyTuple_New(Py_ssize_t len)
|
|
|
|
Return a new tuple object of size *len*, or *NULL* on failure.
|
|
|
|
|
|
.. cfunction:: PyObject* PyTuple_Pack(Py_ssize_t n, ...)
|
|
|
|
Return a new tuple object of size *n*, or *NULL* on failure. The tuple values
|
|
are initialized to the subsequent *n* C arguments pointing to Python objects.
|
|
``PyTuple_Pack(2, a, b)`` is equivalent to ``Py_BuildValue("(OO)", a, b)``.
|
|
|
|
|
|
.. cfunction:: Py_ssize_t PyTuple_Size(PyObject *p)
|
|
|
|
Take a pointer to a tuple object, and return the size of that tuple.
|
|
|
|
|
|
.. cfunction:: Py_ssize_t PyTuple_GET_SIZE(PyObject *p)
|
|
|
|
Return the size of the tuple *p*, which must be non-*NULL* and point to a tuple;
|
|
no error checking is performed.
|
|
|
|
|
|
.. cfunction:: PyObject* PyTuple_GetItem(PyObject *p, Py_ssize_t pos)
|
|
|
|
Return the object at position *pos* in the tuple pointed to by *p*. If *pos* is
|
|
out of bounds, return *NULL* and sets an :exc:`IndexError` exception.
|
|
|
|
|
|
.. cfunction:: PyObject* PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)
|
|
|
|
Like :cfunc:`PyTuple_GetItem`, but does no checking of its arguments.
|
|
|
|
|
|
.. cfunction:: PyObject* PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)
|
|
|
|
Take a slice of the tuple pointed to by *p* from *low* to *high* and return it
|
|
as a new tuple.
|
|
|
|
|
|
.. cfunction:: int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)
|
|
|
|
Insert a reference to object *o* at position *pos* of the tuple pointed to by
|
|
*p*. Return ``0`` on success.
|
|
|
|
.. note::
|
|
|
|
This function "steals" a reference to *o*.
|
|
|
|
|
|
.. cfunction:: void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)
|
|
|
|
Like :cfunc:`PyTuple_SetItem`, but does no error checking, and should *only* be
|
|
used to fill in brand new tuples.
|
|
|
|
.. note::
|
|
|
|
This function "steals" a reference to *o*.
|
|
|
|
|
|
.. cfunction:: 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 ``0`` on success. Client code should never
|
|
assume that the resulting value of ``*p`` will be the same as before calling
|
|
this function. If the object referenced by ``*p`` is replaced, the original
|
|
``*p`` is destroyed. On failure, returns ``-1`` and sets ``*p`` to *NULL*, and
|
|
raises :exc:`MemoryError` or :exc:`SystemError`.
|
|
|
|
.. cfunction:: int PyTuple_ClearFreeList(void)
|
|
|
|
Clear the free list. Return the total number of freed items.
|