Tuple-objekt¶
-
PyTypeObject PyTuple_Type¶
- En del av Stabil ABI.
Denna instans av
PyTypeObjectrepresenterar Pythons tupeltyp; det är samma objekt somtuplei Python-lagret.
-
int PyTuple_Check(PyObject *p)¶
Returnerar true om p är ett tuple-objekt eller en instans av en subtyp av tuple-typen. Denna funktion lyckas alltid.
-
int PyTuple_CheckExact(PyObject *p)¶
Returnerar true om p är ett tuple-objekt, men inte en instans av en subtyp av tuple-typen. Denna funktion lyckas alltid.
-
PyObject *PyTuple_New(Py_ssize_t len)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar ett nytt tuple-objekt av storleken len, eller
NULLmed en undantagsuppsättning vid fel.
-
PyObject *PyTuple_Pack(Py_ssize_t n, ...)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar ett nytt tuple-objekt av storlek n, eller
NULLmed en exception set vid misslyckande. Tupelvärdena initialiseras till de efterföljande n C-argumenten som pekar på Python-objekt.PyTuple_Pack(2, a, b)är ekvivalent medPy_BuildValue("(OO)", a, b).
-
Py_ssize_t PyTuple_Size(PyObject *p)¶
- En del av Stabil ABI.
Ta en pekare till ett tuple-objekt och returnera storleken på tupeln. Vid fel returneras
\-1och med en undantagsuppsättning.
-
Py_ssize_t PyTuple_GET_SIZE(PyObject *p)¶
Som
PyTuple_Size(), men utan felkontroll.
-
PyObject *PyTuple_GetItem(PyObject *p, Py_ssize_t pos)¶
- Returnera värde: Lånad referens. En del av Stabil ABI.
Returnerar objektet på position pos i den tupel som p pekar på. Om pos är negativ eller utanför gränserna, returneras
NULLoch ettIndexErrorundantag anges.Den returnerade referensen är lånad från tupeln p (det vill säga: den är bara giltig så länge du har en referens till p). För att få en strong reference, använd
Py_NewRef(PyTuple_GetItem(...))ellerPySequence_GetItem().
-
PyObject *PyTuple_GET_ITEM(PyObject *p, Py_ssize_t pos)¶
- Returnera värde: Lånad referens.
Som
PyTuple_GetItem(), men gör ingen kontroll av argumenten.
-
PyObject *PyTuple_GetSlice(PyObject *p, Py_ssize_t low, Py_ssize_t high)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar den del av tupeln som pekas ut av p mellan low och high, eller
NULLmed en undantagsuppsättning vid fel.Detta är motsvarigheten till Python-uttrycket
p[low:high]. Indexering från slutet av tupeln stöds inte.
-
int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶
- En del av Stabil ABI.
Infoga en referens till objektet o på position pos i den tupel som p pekar på. Returnerar
0vid framgång. Om pos är utanför gränserna, returneras\-1och ettIndexErrorundantag anges.Anteckning
Denna funktion ”stjäl” en referens till o och kastar bort en referens till ett objekt som redan finns i tupeln på den berörda positionen.
-
void PyTuple_SET_ITEM(PyObject *p, Py_ssize_t pos, PyObject *o)¶
Som
PyTuple_SetItem(), men gör ingen felkontroll och bör endast användas för att fylla i helt nya tupler.Gränskontroll utförs som ett påstående om Python är byggt i debugläge eller
med påstående.Anteckning
Denna funktion ”stjäl” en referens till o och, till skillnad från
PyTuple_SetItem(), förkastar den inte en referens till något objekt som ersätts; alla referenser i tupeln på position pos läcker ut.Varning
Detta makro ska endast användas på tuples som är nyskapade. Om du använder detta makro på en tupel som redan används (eller med andra ord har ett refcount > 1) kan det leda till ett odefinierat beteende.
-
int _PyTuple_Resize(PyObject **p, Py_ssize_t newsize)¶
Kan användas för att ändra storlek på en tupel. newsize kommer att vara den nya längden på tupeln. Eftersom tuplar förutsätts vara oföränderliga bör detta endast användas om det bara finns en referens till objektet. Använd inte detta om tupeln redan kan vara känd av någon annan del av koden. Tupeln kommer alltid att växa eller krympa i slutet. Tänk på detta som att förstöra den gamla tupeln och skapa en ny, fast mer effektivt. Returnerar
0vid framgång. Klientkoden bör aldrig anta att det resulterande värdet av*pkommer att vara detsamma som innan funktionen anropades. Om objektet som refereras till av*persätts, förstörs det ursprungliga*p. Om funktionen misslyckas, returneras\-1och*psätts tillNULL, och ger upphov tillMemoryErrorellerSystemError.
Struct Sequence Objects¶
Struct sequence-objekt är C-motsvarigheten till namedtuple()-objekt, dvs. en sekvens vars objekt också kan nås via attribut. För att skapa en struct-sekvens måste du först skapa en specifik struct-sekvenstyp.
-
PyTypeObject *PyStructSequence_NewType(PyStructSequence_Desc *desc)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Skapar en ny struct sequence-typ från data i desc, enligt beskrivningen nedan. Instanser av den resulterande typen kan skapas med
PyStructSequence_New().Returnerar
NULLmed en exceptionell uppsättning vid fel.
-
void PyStructSequence_InitType(PyTypeObject *type, PyStructSequence_Desc *desc)¶
Initialiserar en struct-sekvens typ type från desc på plats.
-
int PyStructSequence_InitType2(PyTypeObject *type, PyStructSequence_Desc *desc)¶
Som
PyStructSequence_InitType(), men returnerar0vid framgång och\-1med en exception set vid misslyckande.Tillagd i version 3.4.
-
type PyStructSequence_Desc¶
- En del av Stabil ABI (inklusive alla medlemmar).
Innehåller metainformationen för en struct-sekvenstyp som ska skapas.
-
const char *name¶
Fullständigt kvalificerat namn på typen; nollavslutad UTF-8-kodad. Namnet måste innehålla modulnamnet.
-
const char *doc¶
Pekare till docstring för typen eller
NULLför att utelämna.
-
PyStructSequence_Field *fields¶
Pekare till en
NULL-avslutad array med fältnamn av den nya typen.
-
int n_in_sequence¶
Antal fält som är synliga för Python-sidan (om de används som tuple).
-
const char *name¶
-
type PyStructSequence_Field¶
- En del av Stabil ABI (inklusive alla medlemmar).
Beskriver ett fält i en struct sequence. Eftersom en struct sequence är modellerad som en tupel, är alla fält typade som PyObject*. Indexet i
fields-arrayen iPyStructSequence_Descavgör vilket fält i struct-sekvensen som beskrivs.-
const char *name¶
Namn på fältet eller
NULLför att avsluta listan över namngivna fält, inställt påPyStructSequence_UnnamedFieldför att lämna fältet utan namn.
-
const char *doc¶
Fältets dokumentsträng eller
NULLför att utelämna.
-
const char *name¶
-
const char *const PyStructSequence_UnnamedField¶
- En del av Stabil ABI sedan version 3.11.
Specialvärde för ett fältnamn för att lämna det namnlöst.
Ändrad i version 3.9: Typen ändrades från
char *.
-
PyObject *PyStructSequence_New(PyTypeObject *type)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Skapar en instans av typ, som måste ha skapats med
PyStructSequence_NewType().Returnerar
NULLmed en exceptionell uppsättning vid fel.
-
PyObject *PyStructSequence_GetItem(PyObject *p, Py_ssize_t pos)¶
- Returnera värde: Lånad referens. En del av Stabil ABI.
Returnerar objektet på position pos i struct-sekvensen som pekas ut av p.
Gränskontroll utförs som ett påstående om Python är byggt i debugläge eller
med påstående.
-
PyObject *PyStructSequence_GET_ITEM(PyObject *p, Py_ssize_t pos)¶
- Returnera värde: Lånad referens.
Alias till
PyStructSequence_GetItem().Ändrad i version 3.13: Nu implementerad som ett alias till
PyStructSequence_GetItem().
-
void PyStructSequence_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶
- En del av Stabil ABI.
Ställer in fältet vid index pos i struct-sekvensen p till värdet o. Precis som
PyTuple_SET_ITEM()bör detta endast användas för att fylla i helt nya instanser.Gränskontroll utförs som ett påstående om Python är byggt i debugläge eller
med påstående.Anteckning
Denna funktion ”stjäl” en referens till o.
-
void PyStructSequence_SET_ITEM(PyObject *p, Py_ssize_t *pos, PyObject *o)¶
Alias till
PyStructSequence_SetItem().Ändrad i version 3.13: Nu implementerad som ett alias till
PyStructSequence_SetItem().