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