Sequence Protocol

int PySequence_Check(PyObject *o)
Teil der Stable ABI.

Gibt 1 zurück, wenn das Objekt das Sequenzprotokoll bereitstellt, und 0 andernfalls. Beachten Sie, dass für Python-Klassen mit einer __getitem__()-Methode 1 zurückgegeben wird, es sei denn, es handelt sich um dict-Unterklassen, da es im Allgemeinen unmöglich ist, den Typ der unterstützten Schlüssel zu bestimmen. Diese Funktion ist immer erfolgreich.

Py_ssize_t PySequence_Size(PyObject *o)
Py_ssize_t PySequence_Length(PyObject *o)
Teil der Stable ABI.

Gibt bei Erfolg die Anzahl der Objekte in der Sequenz o zurück, bei Fehler -1. Dies entspricht dem Python-Ausdruck len(o).

PyObject *PySequence_Concat(PyObject *o1, PyObject *o2)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt bei Erfolg die Konkatenation von o1 und o2 zurück, bei Fehler NULL. Dies entspricht dem Python-Ausdruck o1 + o2.

PyObject *PySequence_Repeat(PyObject *o, Py_ssize_t count)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt das Ergebnis der Wiederholung des Sequenzobjekts o count Mal zurück, bei Fehler NULL. Dies entspricht dem Python-Ausdruck o * count.

PyObject *PySequence_InPlaceConcat(PyObject *o1, PyObject *o2)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt bei Erfolg die Konkatenation von o1 und o2 zurück, bei Fehler NULL. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht dem Python-Ausdruck o1 += o2.

PyObject *PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt das Ergebnis der Wiederholung des Sequenzobjekts o count Mal zurück, bei Fehler NULL. Die Operation wird in-place durchgeführt, wenn o dies unterstützt. Dies entspricht dem Python-Ausdruck o *= count.

PyObject *PySequence_GetItem(PyObject *o, Py_ssize_t i)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt das i-te Element von o zurück, bei Fehler NULL. Dies entspricht dem Python-Ausdruck o[i].

PyObject *PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt den Slice des Sequenzobjekts o zwischen i1 und i2 zurück, bei Fehler NULL. Dies entspricht dem Python-Ausdruck o[i1:i2].

int PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v)
Teil der Stable ABI.

Weist dem i-ten Element von o das Objekt v zu. Löst bei Fehler eine Ausnahme aus und gibt -1 zurück; gibt bei Erfolg 0 zurück. Dies entspricht der Python-Anweisung o[i] = v. Diese Funktion stiehlt keine Referenz auf v.

Wenn v NULL ist, wird das Element gelöscht, aber diese Funktion ist zugunsten der Verwendung von PySequence_DelItem() veraltet.

int PySequence_DelItem(PyObject *o, Py_ssize_t i)
Teil der Stable ABI.

Löscht das i-te Element des Objekts o. Gibt bei Fehler -1 zurück. Dies entspricht der Python-Anweisung del o[i].

int PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, PyObject *v)
Teil der Stable ABI.

Weist der Slice des Sequenzobjekts o von i1 bis i2 das Sequenzobjekt v zu. Dies entspricht der Python-Anweisung o[i1:i2] = v.

int PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)
Teil der Stable ABI.

Löscht die Slice im Sequenzobjekt o von i1 bis i2. Gibt bei Fehler -1 zurück. Dies entspricht der Python-Anweisung del o[i1:i2].

Py_ssize_t PySequence_Count(PyObject *o, PyObject *value)
Teil der Stable ABI.

Gibt die Anzahl der Vorkommen von value in o zurück, d. h. gibt die Anzahl der Schlüssel zurück, für die o[key] == value gilt. Bei Fehler wird -1 zurückgegeben. Dies entspricht dem Python-Ausdruck o.count(value).

int PySequence_Contains(PyObject *o, PyObject *value)
Teil der Stable ABI.

Prüft, ob o value enthält. Wenn ein Element in o gleich value ist, wird 1 zurückgegeben, andernfalls 0. Bei einem Fehler wird -1 zurückgegeben. Dies entspricht dem Python-Ausdruck value in o.

int PySequence_In(PyObject *o, PyObject *value)
Teil der Stable ABI.

Alias für PySequence_Contains().

Veraltet seit Version 3.14: Die Funktion ist weich veraltet und sollte nicht mehr für neuen Code verwendet werden.

Py_ssize_t PySequence_Index(PyObject *o, PyObject *value)
Teil der Stable ABI.

Gibt den ersten Index i zurück, für den o[i] == value gilt. Bei Fehler wird -1 zurückgegeben. Dies entspricht dem Python-Ausdruck o.index(value).

PyObject *PySequence_List(PyObject *o)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt ein Listenobjekt mit denselben Inhalten wie die Sequenz oder der Iterable o zurück, bei Fehler NULL. Die zurückgegebene Liste ist garantiert neu. Dies entspricht dem Python-Ausdruck list(o).

PyObject *PySequence_Tuple(PyObject *o)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt ein Tupelobjekt mit denselben Inhalten wie die Sequenz oder der Iterable o zurück, bei Fehler NULL. Wenn o ein Tupel ist, wird eine neue Referenz zurückgegeben, andernfalls wird ein Tupel mit den entsprechenden Inhalten konstruiert. Dies entspricht dem Python-Ausdruck tuple(o).

PyObject *PySequence_Fast(PyObject *o, const char *m)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt die Sequenz oder den Iterable o als Objekt zurück, das von der anderen Funktion der Familie PySequence_Fast* verwendet werden kann. Wenn das Objekt keine Sequenz oder kein Iterable ist, wird ein TypeError mit m als Nachrichtentext ausgelöst. Gibt bei Fehler NULL zurück.

Die Funktionen PySequence_Fast* sind so benannt, weil sie davon ausgehen, dass o ein PyTupleObject oder ein PyListObject ist und direkt auf die Datenfelder von o zugreifen.

Als Implementierungsdetail von CPython wird o zurückgegeben, wenn es bereits eine Sequenz oder eine Liste ist.

Py_ssize_t PySequence_Fast_GET_SIZE(PyObject *o)

Gibt die Länge von o zurück, unter der Annahme, dass o von PySequence_Fast() zurückgegeben wurde und o nicht NULL ist. Die Größe kann auch durch Aufruf von PySequence_Size() für o abgerufen werden, aber PySequence_Fast_GET_SIZE() ist schneller, da sie davon ausgehen kann, dass o eine Liste oder ein Tupel ist.

PyObject *PySequence_Fast_GET_ITEM(PyObject *o, Py_ssize_t i)
Rückgabewert: Entliehene Referenz.

Gibt das i-te Element von o zurück, unter der Annahme, dass o von PySequence_Fast() zurückgegeben wurde, o nicht NULL ist und i innerhalb der Grenzen liegt.

PyObject **PySequence_Fast_ITEMS(PyObject *o)

Gibt das zugrunde liegende Array von PyObject-Zeigern zurück. Geht davon aus, dass o von PySequence_Fast() zurückgegeben wurde und o nicht NULL ist.

Beachten Sie, dass die Neuzuweisung des Arrays die Position des Element-Arrays ändern kann, wenn eine Liste vergrößert wird. Verwenden Sie den Zeiger auf das zugrunde liegende Array daher nur in Kontexten, in denen die Sequenz nicht geändert werden kann.

PyObject *PySequence_ITEM(PyObject *o, Py_ssize_t i)
Rückgabewert: Neue Referenz.

Gibt das i-te Element von o zurück, bei Fehler NULL. Schnellere Form von PySequence_GetItem(), aber ohne Überprüfung, ob PySequence_Check() für o wahr ist und ohne Anpassung für negative Indizes.