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

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.

Return the floor of o1 divided by o2, or NULL on failure. This is equivalent to the «classic» division of integers.

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.

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.

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)

Returns o converted to a Py_ssize_t value if o can be interpreted as an integer. If the call fails, an exception is raised and -1 is returned.

If o can be converted to a Python int but the attempt to convert to a Py_ssize_t value would raise an OverflowError, then the exc argument is the type of exception that will be raised (usually IndexError or OverflowError). If exc is NULL, then the exception is cleared and the value is clipped to PY_SSIZE_T_MIN for a negative integer or PY_SSIZE_T_MAX for a positive integer.

int PyIndex_Check(PyObject *o)

Returns 1 if o is an index integer (has the nb_index slot of the tp_as_number structure filled in), and 0 otherwise. This function always succeeds.