Номер протоколу¶
-
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
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 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
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 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
для додатного цілого числа.