Номер протоколу¶
-
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у разі помилки. Це еквівалент виразу Pythono1 + o2.
-
PyObject*
PyNumber_Subtract(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат віднімання o2 від o1 або
NULLу разі помилки. Це еквівалент виразу Pythono1 - o2.
-
PyObject*
PyNumber_Multiply(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат множення o1 і o2 або
NULLу разі помилки. Це еквівалент виразу Pythono1 * o2.
-
PyObject*
PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат множення матриці на o1 та o2 або
NULLу разі помилки. Це еквівалент виразу Pythono1 @ o2.Нове в версії 3.5.
-
PyObject*
PyNumber_FloorDivide(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає нижню частину o1, поділену на o2, або
NULLу разі помилки. Це еквівалент виразу Pythono1 // 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
NULLon 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 expressiono1 / o2.
-
PyObject*
PyNumber_Remainder(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає залишок від ділення o1 на o2 або
NULLу разі помилки. Це еквівалент виразу Pythono1 % o2.
-
PyObject*
PyNumber_Divmod(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Перегляньте вбудовану функцію
divmod(). ПовертаєNULLу разі помилки. Це еквівалент виразу Pythondivmod(o1, o2).
-
PyObject*
PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)¶ - Return value: New reference.
Перегляньте вбудовану функцію
pow(). ПовертаєNULLу разі помилки. Це еквівалент виразу Pythonpow(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у разі помилки. Це еквівалент виразу Pythonabs(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у разі помилки. Це еквівалент виразу Pythono1 << o2.
-
PyObject*
PyNumber_Rshift(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат зсуву праворуч o1 на o2 у разі успіху або
NULLу разі помилки. Це еквівалент виразу Pythono1 >> o2.
-
PyObject*
PyNumber_And(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає «порозрядне та» o1 і o2 у разі успіху та
NULLу разі помилки. Це еквівалент виразу Pythono1 & o2.
-
PyObject*
PyNumber_Xor(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає «порозрядне виняткове або» o1 на o2 у разі успіху або
NULLу разі помилки. Це еквівалент виразу Pythono1 ^ o2.
-
PyObject*
PyNumber_Or(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає «порозрядне або» o1 і o2 у разі успіху або
NULLу разі помилки. Це еквівалент виразу Pythono1 | o2.
-
PyObject*
PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат додавання o1 і o2 або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 += o2.
-
PyObject*
PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат віднімання o2 від o1 або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 -= o2.
-
PyObject*
PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат множення o1 і o2 або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 *= o2.
-
PyObject*
PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат множення матриці на o1 і o2 або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 @= o2.Нове в версії 3.5.
-
PyObject*
PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає математичний рівень ділення o1 на o2 або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 //= 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
NULLon 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 statemento1 /= o2.
-
PyObject*
PyNumber_InPlaceRemainder(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає залишок від ділення o1 на o2 або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 %= o2.
-
PyObject*
PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)¶ - Return value: New reference.
Перегляньте вбудовану функцію
pow(). ПовертаєNULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 **= 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 її підтримує. Це еквівалент оператора Pythono1 <<= o2.
-
PyObject*
PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає результат зсуву праворуч o1 на o2 у разі успіху або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 >>= o2.
-
PyObject*
PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає «порозрядне та» o1 і o2 у разі успіху та
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 &= o2.
-
PyObject*
PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає «порозрядне виняткове або» o1 на o2 у разі успіху або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 ^= o2.
-
PyObject*
PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)¶ - Return value: New reference.
Повертає «порозрядне або» o1 і o2 у разі успіху або
NULLу разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 |= o2.
-
PyObject*
PyNumber_Long(PyObject *o)¶ - Return value: New reference.
Повертає o, перетворений на цілий об’єкт у разі успіху, або
NULLу разі помилки. Це еквівалент виразу Pythonint(o).
-
PyObject*
PyNumber_Float(PyObject *o)¶ - Return value: New reference.
Повертає o, перетворений на об’єкт float у разі успіху, або
NULLу разі помилки. Це еквівалент виразу Pythonfloat(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для додатного цілого числа.