Slice-objekt¶
-
PyTypeObject PySlice_Type¶
- En del av Stabil ABI.
Typobjektet för slice-objekt. Detta är samma sak som
slice
i Python-lagret.
-
int PySlice_Check(PyObject *ob)¶
Returnerar true om ob är ett slice-objekt; ob får inte vara
NULL
. Denna funktion lyckas alltid.
-
PyObject *PySlice_New(PyObject *start, PyObject *stop, PyObject *step)¶
- Returnera värde: Ny referens. En del av Stabil ABI.
Returnerar ett nytt slice-objekt med de angivna värdena. Parametrarna start, stop och step används som värden för attributen i slice-objektet med samma namn. Något av värdena kan vara
NULL
, i vilket fallNone
kommer att användas för motsvarande attribut.Returnerar
NULL
med ett undantag om det nya objektet inte kunde allokeras.
-
int PySlice_GetIndices(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- En del av Stabil ABI.
Hämtar start-, stopp- och stegindex från skivobjektet slice, förutsatt en sekvens med längden length. Behandlar index som är större än length som fel.
Returnerar
0
vid framgång och-1
vid fel utan någon undantagsuppsättning (såvida inte ett av indexen inte varNone
och inte kunde konverteras till ett heltal, i vilket fall-1
returneras med en undantagsuppsättning).Du vill förmodligen inte använda den här funktionen.
Ändrad i version 3.2: Parametertypen för slice-parametern var tidigare
PySliceObject*
.
-
int PySlice_GetIndicesEx(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)¶
- En del av Stabil ABI.
Användbar ersättning för
PySlice_GetIndices()
. Hämtar start-, stopp- och stegindex från skivobjektet slice förutsatt en sekvens med längden length, och lagrar längden på skivan i slicelength. Index utanför gränserna klipps på ett sätt som överensstämmer med hanteringen av normala skivor.Returnerar
0
vid framgång och-1
vid fel med en undantagsuppsättning.Anteckning
Denna funktion anses inte vara säker för sekvenser som kan ändras i storlek. Dess anrop bör ersättas med en kombination av
PySlice_Unpack()
ochPySlice_AdjustIndices()
därif (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) < 0) { // returnerar fel }
ersätts av
if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // returnera fel } slicelength = PySlice_AdjustIndices(length, &start, &stop, step);
Ändrad i version 3.2: Parametertypen för slice-parametern var tidigare
PySliceObject*
.Ändrad i version 3.6.1: Om
Py_LIMITED_API
inte är inställt eller är inställt på värdet mellan0x03050400
och0x03060000
(ej inkluderat) eller0x03060100
eller högre implementerasPySlice_GetIndicesEx`()
som ett makro medPySlice_Unpack()
ochPySlice_AdjustIndices()
. Argumenten start, stop och step utvärderas mer än en gång.Föråldrad sedan version 3.6.1: Om
Py_LIMITED_API
är satt till värdet mindre än0x03050400
eller mellan0x03060000
och0x03060100
(ej inkluderat)PySlice_GetIndicesEx()
är en föråldrad funktion.
-
int PySlice_Unpack(PyObject *slice, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- En del av Stabil ABI sedan version 3.7.
Extrahera start-, stopp- och stegdatamedlemmarna från ett slice-objekt som C-heltal. Minska tyst värden som är större än
PY_SSIZE_T_MAX
tillPY_SSIZE_T_MAX
, öka tyst start- och stoppvärdena som är mindre änPY_SSIZE_T_MIN
tillPY_SSIZE_T_MIN
och öka tyst stegvärdena som är mindre än-PY_SSIZE_T_MAX
till-PY_SSIZE_T_MAX
.Returnerar
-1
med en exception set vid fel,0
vid framgång.Tillagd i version 3.6.1.
-
Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t step)¶
- En del av Stabil ABI sedan version 3.7.
Justera index för start/slut på skivan genom att anta en sekvens med angiven längd. Index utanför gränserna klipps på ett sätt som överensstämmer med hanteringen av normala skivor.
Returnera längden på skivan. Alltid framgångsrik. Anropar inte Python-kod.
Tillagd i version 3.6.1.
Ellipsobjekt¶
-
PyTypeObject PyEllipsis_Type¶
- En del av Stabil ABI.
Typen av Python
Ellipsis
-objekt. Samma somtypes.EllipsisType
i Python-lagret.
-
PyObject *Py_Ellipsis¶
Python-objektet
Ellipsis
. Detta objekt har inga metoder. LiksomPy_None
är det ett immortal singleton-objekt.Ändrad i version 3.12:
Py_Ellipsis
är odödlig.