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

int PyNumber_Check(PyObject *o)

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

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

PyObject* PyNumber_Add(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_Subtract(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_Multiply(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)
Return value: New reference.

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

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

PyObject* PyNumber_FloorDivide(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_TrueDivide(PyObject *o1, PyObject *o2)
Return value: New reference.

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.

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

PyObject* PyNumber_Divmod(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)
Return value: New reference.

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

PyObject* PyNumber_Negative(PyObject *o)
Return value: New reference.

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

PyObject* PyNumber_Positive(PyObject *o)
Return value: New reference.

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

PyObject* PyNumber_Absolute(PyObject *o)
Return value: New reference.

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

PyObject* PyNumber_Invert(PyObject *o)
Return value: New reference.

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

PyObject* PyNumber_Lshift(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_Rshift(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_And(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_Xor(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_Or(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)
Return value: New reference.

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

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

PyObject* PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)
Return value: New reference.

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.

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

PyObject* PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)
Return value: New reference.

Перегляньте вбудовану функцію 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.

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

PyObject* PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)
Return value: New reference.

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

PyObject* PyNumber_Long(PyObject *o)
Return value: New reference.

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

PyObject* PyNumber_Float(PyObject *o)
Return value: New reference.

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

PyObject* PyNumber_Index(PyObject *o)
Return value: New reference.

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

PyObject* PyNumber_ToBase(PyObject *n, int base)
Return value: New reference.

Повертає ціле число 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)

Повертає 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)

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