Номер протоколу

int PyNumber_Check(PyObject *o)
Part of the Stable ABI.

Повертає 1, якщо об’єкт o надає числові протоколи, і false в іншому випадку. Ця функція завжди успішна.

Змінено в версії 3.8: Повертає 1, якщо o є цілим індексом.

PyObject *PyNumber_Add(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат додавання o1 і o2 або NULL у разі помилки. Це еквівалент виразу Python o1 + o2.

PyObject *PyNumber_Subtract(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат віднімання o2 від o1 або NULL у разі помилки. Це еквівалент виразу Python o1 - o2.

PyObject *PyNumber_Multiply(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат множення o1 і o2 або NULL у разі помилки. Це еквівалент виразу Python o1 * o2.

PyObject *PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI since version 3.7.

Повертає результат множення матриці на o1 та o2 або NULL у разі помилки. Це еквівалент виразу Python o1 @ o2.

Нове в версії 3.5.

PyObject *PyNumber_FloorDivide(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає нижню частину o1, поділену на o2, або NULL у разі помилки. Це еквівалент виразу Python o1 // o2.

PyObject *PyNumber_TrueDivide(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Return a reasonable approximation for the mathematical value of o1 divided by o2, or NULL on failure. The return value is «approximate» because binary floating point numbers are approximate; it is not possible to represent all real numbers in base two. This function can return a floating point value when passed two integers. This is the equivalent of the Python expression o1 / o2.

PyObject *PyNumber_Remainder(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає залишок від ділення o1 на o2 або NULL у разі помилки. Це еквівалент виразу Python o1 % o2.

PyObject *PyNumber_Divmod(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Перегляньте вбудовану функцію divmod(). Повертає NULL у разі помилки. Це еквівалент виразу Python divmod(o1, o2).

PyObject *PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)
Return value: New reference. Part of the Stable ABI.

Перегляньте вбудовану функцію pow(). Повертає NULL у разі помилки. Це еквівалент виразу Python pow(o1, o2, o3), де o3 є необов’язковим. Якщо o3 потрібно ігнорувати, передайте замість нього Py_None (передача NULL для o3 призведе до незаконного доступу до пам’яті).

PyObject *PyNumber_Negative(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає заперечення o у разі успіху або NULL у разі невдачі. Це еквівалент виразу Python -o.

PyObject *PyNumber_Positive(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає o у разі успіху або NULL у разі невдачі. Це еквівалент виразу Python +o.

PyObject *PyNumber_Absolute(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає абсолютне значення o або NULL у разі помилки. Це еквівалент виразу Python abs(o).

PyObject *PyNumber_Invert(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає порозрядне заперечення o у разі успіху або NULL у разі невдачі. Це еквівалент виразу Python ~o.

PyObject *PyNumber_Lshift(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат зсуву вліво o1 на o2 у разі успіху або NULL у разі помилки. Це еквівалент виразу Python o1 << o2.

PyObject *PyNumber_Rshift(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат зсуву праворуч o1 на o2 у разі успіху або NULL у разі помилки. Це еквівалент виразу Python o1 >> o2.

PyObject *PyNumber_And(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає «порозрядне та» o1 і o2 у разі успіху та NULL у разі помилки. Це еквівалент виразу Python o1 & o2.

PyObject *PyNumber_Xor(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає «порозрядне виняткове або» o1 на o2 у разі успіху або NULL у разі помилки. Це еквівалент виразу Python o1 ^ o2.

PyObject *PyNumber_Or(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає «порозрядне або» o1 і o2 у разі успіху або NULL у разі помилки. Це еквівалент виразу Python o1 | o2.

PyObject *PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат додавання o1 і o2 або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 += o2.

PyObject *PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат віднімання o2 від o1 або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 -= o2.

PyObject *PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат множення o1 і o2 або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 *= o2.

PyObject *PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI since version 3.7.

Повертає результат множення матриці на o1 і o2 або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 @= o2.

Нове в версії 3.5.

PyObject *PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає математичний рівень ділення o1 на o2 або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 //= o2.

PyObject *PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Return a reasonable approximation for the mathematical value of o1 divided by o2, or NULL on failure. The return value is «approximate» because binary floating point numbers are approximate; it is not possible to represent all real numbers in base two. This function can return a floating point value when passed two integers. The operation is done in-place when o1 supports it. This is the equivalent of the Python statement o1 /= o2.

PyObject *PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає залишок від ділення o1 на o2 або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 %= o2.

PyObject *PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)
Return value: New reference. Part of the Stable ABI.

Перегляньте вбудовану функцію pow(). Повертає NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 **= o2, коли o3 дорівнює Py_None, або альтернативного варіанту pow(o1, o2, o3) інакше. Якщо o3 потрібно ігнорувати, передайте замість нього Py_None (передача NULL для o3 призведе до незаконного доступу до пам’яті).

PyObject *PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат зсуву ліворуч o1 на o2 у разі успіху або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 <<= o2.

PyObject *PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає результат зсуву праворуч o1 на o2 у разі успіху або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 >>= o2.

PyObject *PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає «порозрядне та» o1 і o2 у разі успіху та NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 &= o2.

PyObject *PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає «порозрядне виняткове або» o1 на o2 у разі успіху або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 ^= o2.

PyObject *PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)
Return value: New reference. Part of the Stable ABI.

Повертає «порозрядне або» o1 і o2 у разі успіху або NULL у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Python o1 |= o2.

PyObject *PyNumber_Long(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає o, перетворений на цілий об’єкт у разі успіху, або NULL у разі помилки. Це еквівалент виразу Python int(o).

PyObject *PyNumber_Float(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає o, перетворений на об’єкт float у разі успіху, або NULL у разі помилки. Це еквівалент виразу Python float(o).

PyObject *PyNumber_Index(PyObject *o)
Return value: New reference. Part of the Stable ABI.

Повертає o, перетворений на Python int у разі успіху або NULL з виключенням TypeError, яке виникає в разі помилки.

Змінено в версії 3.10: Результат завжди має точний тип int. Раніше результат міг бути екземпляром підкласу int.

PyObject *PyNumber_ToBase(PyObject *n, int base)
Return value: New reference. Part of the Stable ABI.

Повертає ціле число n, перетворене на базу base як рядок. Аргумент base має бути одним із 2, 8, 10 або 16. Для base 2, 8 або 16 повернутий рядок має префікс базового маркера '0b', '0o' або '0x'' відповідно. Якщо n не є int Python, воно спочатку перетворюється за допомогою PyNumber_Index().

Py_ssize_t PyNumber_AsSsize_t(PyObject *o, PyObject *exc)
Part of the Stable ABI.

Повертає o, перетворене на значення Py_ssize_t, якщо o можна інтерпретувати як ціле число. Якщо виклик не вдається, виникає виняток і повертається -1.

Якщо o можна перетворити на Python int, але спроба перетворити на значення Py_ssize_t призведе до появи OverflowError, тоді аргумент exc є типом винятку, який викличе бути викликано (зазвичай IndexError або OverflowError). Якщо exc дорівнює NULL, тоді виняток очищається, а значення обрізається до PY_SSIZE_T_MIN для від’ємного цілого числа або PY_SSIZE_T_MAX для додатного цілого числа.

int PyIndex_Check(PyObject *o)
Part of the Stable ABI since version 3.8.

Повертає 1, якщо o є цілим індексом (має заповнений слот nb_index структури tp_as_number), і 0 інакше. Ця функція завжди успішна.