Sequence Protocol¶
-
int PySequence_Check(PyObject *o)¶
- Teil der Stable ABI.
Gibt
1zurück, wenn das Objekt das Sequenzprotokoll bereitstellt, und0andernfalls. Beachten Sie, dass für Python-Klassen mit einer__getitem__()-Methode1zurückgegeben wird, es sei denn, es handelt sich umdict-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-Ausdrucklen(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-Ausdrucko1 + 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-Ausdrucko * 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-Ausdrucko1 += 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-Ausdrucko *= 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-Ausdrucko[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-Ausdrucko[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
-1zurück; gibt bei Erfolg0zurück. Dies entspricht der Python-Anweisungo[i] = v. Diese Funktion stiehlt keine Referenz auf v.Wenn v
NULList, wird das Element gelöscht, aber diese Funktion ist zugunsten der Verwendung vonPySequence_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
-1zurück. Dies entspricht der Python-Anweisungdel 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
-1zurück. Dies entspricht der Python-Anweisungdel 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] == valuegilt. Bei Fehler wird-1zurückgegeben. Dies entspricht dem Python-Ausdrucko.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
1zurückgegeben, andernfalls0. Bei einem Fehler wird-1zurückgegeben. Dies entspricht dem Python-Ausdruckvalue 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] == valuegilt. Bei Fehler wird-1zurückgegeben. Dies entspricht dem Python-Ausdrucko.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-Ausdrucklist(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-Ausdrucktuple(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 einTypeErrormit m als Nachrichtentext ausgelöst. Gibt bei FehlerNULLzurück.Die Funktionen
PySequence_Fast*sind so benannt, weil sie davon ausgehen, dass o einPyTupleObjectoder einPyListObjectist 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 nichtNULList. Die Größe kann auch durch Aufruf vonPySequence_Size()für o abgerufen werden, aberPySequence_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 nichtNULList 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 nichtNULList.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 vonPySequence_GetItem(), aber ohne Überprüfung, obPySequence_Check()für o wahr ist und ohne Anpassung für negative Indizes.