Number Protocol

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

Gibt 1 zurück, wenn das Objekt o numerische Protokolle bereitstellt, andernfalls 0. Diese Funktion ist immer erfolgreich.

Geändert in Version 3.8: Gibt 1 zurück, wenn o ein Index-Integer ist.

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

Gibt das Ergebnis der Addition von o1 und o2 zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 + o2.

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

Gibt das Ergebnis der Subtraktion von o2 von o1 zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 - o2.

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

Gibt das Ergebnis der Multiplikation von o1 und o2 zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 * o2.

PyObject *PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)
Rückgabewert: Neue Referenz. Teil der Stable ABI seit Version 3.7.

Gibt das Ergebnis der Matrixmultiplikation von o1 und o2 zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 @ o2.

Hinzugefügt in Version 3.5.

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

Gibt den ganzzahligen Teil der Division von o1 durch o2 zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 // o2.

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

Gibt eine angemessene Annäherung für den mathematischen Wert von o1 geteilt durch o2 zurück, oder NULL bei Fehler. Der Rückgabewert ist "ungefähr", da binäre Fließkommazahlen approximativ sind; es ist nicht möglich, alle reellen Zahlen in Basis zwei darzustellen. Diese Funktion kann einen Fließkommawert zurückgeben, wenn zwei ganze Zahlen übergeben werden. Dies entspricht dem Python-Ausdruck o1 / o2.

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

Gibt den Rest der Division von o1 durch o2 zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 % o2.

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

Siehe die eingebaute Funktion divmod(). Gibt NULL bei Fehler zurück. Dies entspricht dem Python-Ausdruck divmod(o1, o2).

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

Siehe die eingebaute Funktion pow(). Gibt NULL bei Fehler zurück. Dies entspricht dem Python-Ausdruck pow(o1, o2, o3), wobei o3 optional ist. Wenn o3 ignoriert werden soll, übergeben Sie stattdessen Py_None (ein Übergeben von NULL für o3 würde zu einem illegalen Speicherzugriff führen).

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

Gibt die Negation von o bei Erfolg zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck -o.

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

Gibt o bei Erfolg zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck +o.

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

Gibt den Absolutwert von o zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck abs(o).

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

Gibt die bitweise Negation von o bei Erfolg zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck ~o.

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

Gibt das Ergebnis der Linksverschiebung von o1 um o2 bei Erfolg zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 << o2.

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

Gibt das Ergebnis der Rechtsverschiebung von o1 um o2 bei Erfolg zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 >> o2.

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

Gibt das Ergebnis des "bitwise AND" von o1 und o2 bei Erfolg zurück und NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 & o2.

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

Gibt das Ergebnis des "bitwise XOR" von o1 und o2 bei Erfolg zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 ^ o2.

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

Gibt das Ergebnis des "bitwise OR" von o1 und o2 bei Erfolg zurück, oder NULL bei Fehler. Dies entspricht dem Python-Ausdruck o1 | o2.

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

Gibt das Ergebnis der Addition von o1 und o2 zurück, oder NULL bei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 += o2.

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

Gibt das Ergebnis der Subtraktion von o2 von o1 zurück, oder NULL bei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 -= o2.

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

Gibt das Ergebnis der Multiplikation von o1 und o2 zurück, oder NULL bei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 *= o2.

PyObject *PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)
Rückgabewert: Neue Referenz. Teil der Stable ABI seit Version 3.7.

Gibt das Ergebnis der Matrixmultiplikation von o1 und o2 zurück, oder NULL bei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 @= o2.

Hinzugefügt in Version 3.5.

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

Gibt den ganzzahligen Teil der Division von o1 durch o2 zurück, oder NULL bei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 //= o2.

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

Gibt eine angemessene Annäherung für den mathematischen Wert von o1 geteilt durch o2 zurück, oder NULL bei Fehler. Der Rückgabewert ist "ungefähr", da binäre Fließkommazahlen approximativ sind; es ist nicht möglich, alle reellen Zahlen in Basis zwei darzustellen. Diese Funktion kann einen Fließkommawert zurückgeben, wenn zwei ganze Zahlen übergeben werden. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 /= o2.

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

Gibt den Rest der Division von o1 durch o2 zurück, oder NULL bei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 %= o2.

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

Siehe die eingebaute Funktion pow(). Gibt NULL bei Fehler zurück. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 **= o2, wenn o3 Py_None ist, oder einer In-Place-Variante von pow(o1, o2, o3) andernfalls. Wenn o3 ignoriert werden soll, übergeben Sie stattdessen Py_None (ein Übergeben von NULL für o3 würde zu einem illegalen Speicherzugriff führen).

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

Gibt das Ergebnis der Linksverschiebung von o1 um o2 bei Erfolg zurück, oder NULL bei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisung o1 <<= o2.

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

Gibt das Ergebnis einer Rechtsverschiebung von o1 um o2 im Erfolgsfall zurück, oder NULL im Fehlerfall. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies ist äquivalent zur Python-Anweisung o1 >>= o2.

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

Gibt das „bitwise und“ von o1 und o2 im Erfolgsfall zurück und NULL im Fehlerfall. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies ist äquivalent zur Python-Anweisung o1 &= o2.

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

Gibt das „bitwise exklusive oder“ von o1 und o2 im Erfolgsfall zurück, oder NULL im Fehlerfall. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies ist äquivalent zur Python-Anweisung o1 ^= o2.

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

Gibt das „bitwise oder“ von o1 und o2 im Erfolgsfall zurück, oder NULL im Fehlerfall. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies ist äquivalent zur Python-Anweisung o1 |= o2.

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

Gibt o im Erfolgsfall als Integer-Objekt zurück, oder NULL im Fehlerfall. Dies ist äquivalent zum Python-Ausdruck int(o).

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

Gibt o im Erfolgsfall als Float-Objekt zurück, oder NULL im Fehlerfall. Dies ist äquivalent zum Python-Ausdruck float(o).

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

Gibt o im Erfolgsfall als Python-Integer zurück, oder NULL, wobei eine TypeError-Ausnahme ausgelöst wird.

Geändert in Version 3.10: Das Ergebnis hat immer den exakten Typ int. Zuvor konnte das Ergebnis eine Instanz einer Unterklasse von int sein.

PyObject *PyNumber_ToBase(PyObject *n, int base)
Rückgabewert: Neue Referenz. Teil der Stabilen ABI.

Gibt den Integer n umgewandelt in die Basis base als String zurück. Das Argument base muss eine der Zahlen 2, 8, 10 oder 16 sein. Für die Basis 2, 8 oder 16 ist der zurückgegebene String mit einem Basispräfix von '0b', '0o' bzw. '0x' versehen. Wenn n kein Python-Integer ist, wird er zuerst mit PyNumber_Index() konvertiert.

Py_ssize_t PyNumber_AsSsize_t(PyObject *o, PyObject *exc)
Teil der Stable ABI.

Gibt o als Py_ssize_t-Wert zurück, wenn o als Integer interpretiert werden kann. Wenn der Aufruf fehlschlägt, wird eine Ausnahme ausgelöst und -1 zurückgegeben.

Wenn o in einen Python-Integer konvertiert werden kann, aber der Versuch, ihn in einen Py_ssize_t-Wert zu konvertieren, eine OverflowError auslösen würde, dann ist das Argument exc der Typ der Ausnahme, die ausgelöst wird (normalerweise IndexError oder OverflowError). Wenn exc NULL ist, wird die Ausnahme gelöscht und der Wert wird für einen negativen Integer auf PY_SSIZE_T_MIN oder für einen positiven Integer auf PY_SSIZE_T_MAX begrenzt.

int PyIndex_Check(PyObject *o)
Teil der Stable ABI seit Version 3.8.

Gibt 1 zurück, wenn o ein Index-Integer ist (d. h. der Slot nb_index der Struktur tp_as_number gefüllt ist), und 0 andernfalls. Diese Funktion ist immer erfolgreich.