Number Protocol¶
-
int PyNumber_Check(PyObject *o)¶
- Teil der Stable ABI.
Gibt
1zurück, wenn das Objekt o numerische Protokolle bereitstellt, andernfalls0. Diese Funktion ist immer erfolgreich.Geändert in Version 3.8: Gibt
1zurü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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 + 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 - 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 * 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 @ 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 // 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
NULLbei 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-Ausdrucko1 / 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 % o2.
-
PyObject *PyNumber_Divmod(PyObject *o1, PyObject *o2)¶
- Rückgabewert: Neue Referenz. Teil der Stabilen ABI.
Siehe die eingebaute Funktion
divmod(). GibtNULLbei Fehler zurück. Dies entspricht dem Python-Ausdruckdivmod(o1, o2).
-
PyObject *PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Rückgabewert: Neue Referenz. Teil der Stabilen ABI.
Siehe die eingebaute Funktion
pow(). GibtNULLbei Fehler zurück. Dies entspricht dem Python-Ausdruckpow(o1, o2, o3), wobei o3 optional ist. Wenn o3 ignoriert werden soll, übergeben Sie stattdessenPy_None(ein Übergeben vonNULLfü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
NULLbei 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
NULLbei 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
NULLbei Fehler. Dies entspricht dem Python-Ausdruckabs(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
NULLbei 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 << 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 >> 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 & 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 ^ 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
NULLbei Fehler. Dies entspricht dem Python-Ausdrucko1 | 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
NULLbei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisungo1 += 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
NULLbei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisungo1 -= 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
NULLbei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisungo1 *= 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
NULLbei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisungo1 @= 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
NULLbei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisungo1 //= 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
NULLbei 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-Anweisungo1 /= 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
NULLbei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisungo1 %= o2.
-
PyObject *PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Rückgabewert: Neue Referenz. Teil der Stabilen ABI.
Siehe die eingebaute Funktion
pow(). GibtNULLbei Fehler zurück. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisungo1 **= o2, wenn o3Py_Noneist, oder einer In-Place-Variante vonpow(o1, o2, o3)andernfalls. Wenn o3 ignoriert werden soll, übergeben Sie stattdessenPy_None(ein Übergeben vonNULLfü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
NULLbei Fehler. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies entspricht der Python-Anweisungo1 <<= 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
NULLim Fehlerfall. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies ist äquivalent zur Python-Anweisungo1 >>= 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
NULLim Fehlerfall. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies ist äquivalent zur Python-Anweisungo1 &= 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
NULLim Fehlerfall. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies ist äquivalent zur Python-Anweisungo1 ^= 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
NULLim Fehlerfall. Die Operation wird in-place durchgeführt, wenn o1 dies unterstützt. Dies ist äquivalent zur Python-Anweisungo1 |= o2.
-
PyObject *PyNumber_Long(PyObject *o)¶
- Rückgabewert: Neue Referenz. Teil der Stabilen ABI.
Gibt o im Erfolgsfall als Integer-Objekt zurück, oder
NULLim Fehlerfall. Dies ist äquivalent zum Python-Ausdruckint(o).
-
PyObject *PyNumber_Float(PyObject *o)¶
- Rückgabewert: Neue Referenz. Teil der Stabilen ABI.
Gibt o im Erfolgsfall als Float-Objekt zurück, oder
NULLim Fehlerfall. Dies ist äquivalent zum Python-Ausdruckfloat(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 eineTypeError-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 vonintsein.
-
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 mitPyNumber_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-1zurückgegeben.Wenn o in einen Python-Integer konvertiert werden kann, aber der Versuch, ihn in einen
Py_ssize_t-Wert zu konvertieren, eineOverflowErrorauslösen würde, dann ist das Argument exc der Typ der Ausnahme, die ausgelöst wird (normalerweiseIndexErroroderOverflowError). Wenn excNULList, wird die Ausnahme gelöscht und der Wert wird für einen negativen Integer aufPY_SSIZE_T_MINoder für einen positiven Integer aufPY_SSIZE_T_MAXbegrenzt.
-
int PyIndex_Check(PyObject *o)¶
- Teil der Stable ABI seit Version 3.8.
Gibt
1zurück, wenn o ein Index-Integer ist (d. h. der Slotnb_indexder Strukturtp_as_numbergefüllt ist), und0andernfalls. Diese Funktion ist immer erfolgreich.