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 fall None 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 var None 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() och PySlice_AdjustIndices() där

if (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 mellan 0x03050400 och 0x03060000 (ej inkluderat) eller 0x03060100 eller högre implementeras PySlice_GetIndicesEx`() som ett makro med PySlice_Unpack() och PySlice_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 än 0x03050400 eller mellan 0x03060000 och 0x03060100 (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 till PY_SSIZE_T_MAX, öka tyst start- och stoppvärdena som är mindre än PY_SSIZE_T_MIN till PY_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 som types.EllipsisType i Python-lagret.

PyObject *Py_Ellipsis

Python-objektet Ellipsis. Detta objekt har inga metoder. Liksom Py_None är det ett immortal singleton-objekt.

Ändrad i version 3.12: Py_Ellipsis är odödlig.