Protocolo de número¶
-
int PyNumber_Check(PyObject *o)¶
- Parte da ABI Estável.
Retorna
1
se o objeto o fornece protocolos numéricos; caso contrário, retorna falso. Esta função sempre tem sucesso.Alterado na versão 3.8: Retorna
1
se o for um número inteiro de índice.
-
PyObject *PyNumber_Add(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Retorna o resultado da adição de o1 e o2, ou
NULL
em caso de falha. Este é o equivalente da expressão Pythono1 + o2
.
-
PyObject *PyNumber_Subtract(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Retorna o resultado da subtração de o2 por o1, ou
NULL
em caso de falha. Este é o equivalente da expressão Pythono1 - o2
.
-
PyObject *PyNumber_Multiply(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Retorna o resultado da multiplicação de o1 e o2, ou
NULL
em caso de falha. Este é o equivalente da expressão Pythono1 * o2
.
-
PyObject *PyNumber_MatrixMultiply(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável desde a versão 3.7.
Retorna o resultado da multiplicação da matriz em o1 e o2, ou
NULL
em caso de falha. Este é o equivalente da expressão Pythono1 @ o2
.Adicionado na versão 3.5.
-
PyObject *PyNumber_FloorDivide(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає нижню частину o1, поділену на o2, або
NULL
у разі помилки. Це еквівалент виразу Pythono1 // o2
.
-
PyObject *PyNumber_TrueDivide(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
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)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає залишок від ділення o1 на o2 або
NULL
у разі помилки. Це еквівалент виразу Pythono1 % o2
.
-
PyObject *PyNumber_Divmod(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Перегляньте вбудовану функцію
divmod()
. ПовертаєNULL
у разі помилки. Це еквівалент виразу Pythondivmod(o1, o2)
.
-
PyObject *PyNumber_Power(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Перегляньте вбудовану функцію
pow()
. ПовертаєNULL
у разі помилки. Це еквівалент виразу Pythonpow(o1, o2, o3)
, де o3 є необов’язковим. Якщо o3 потрібно ігнорувати, передайте замість ньогоPy_None
(передачаNULL
для o3 призведе до незаконного доступу до пам’яті).
-
PyObject *PyNumber_Negative(PyObject *o)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає заперечення o у разі успіху або
NULL
у разі невдачі. Це еквівалент виразу Python-o
.
-
PyObject *PyNumber_Positive(PyObject *o)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає o у разі успіху або
NULL
у разі невдачі. Це еквівалент виразу Python+o
.
-
PyObject *PyNumber_Absolute(PyObject *o)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає абсолютне значення o або
NULL
у разі помилки. Це еквівалент виразу Pythonabs(o)
.
-
PyObject *PyNumber_Invert(PyObject *o)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає порозрядне заперечення o у разі успіху або
NULL
у разі невдачі. Це еквівалент виразу Python~o
.
-
PyObject *PyNumber_Lshift(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає результат зсуву вліво o1 на o2 у разі успіху або
NULL
у разі помилки. Це еквівалент виразу Pythono1 << o2
.
-
PyObject *PyNumber_Rshift(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає результат зсуву праворуч o1 на o2 у разі успіху або
NULL
у разі помилки. Це еквівалент виразу Pythono1 >> o2
.
-
PyObject *PyNumber_And(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає “порозрядне та” o1 і o2 у разі успіху та
NULL
у разі помилки. Це еквівалент виразу Pythono1 & o2
.
-
PyObject *PyNumber_Xor(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає “порозрядне виняткове або” o1 на o2 у разі успіху або
NULL
у разі помилки. Це еквівалент виразу Pythono1 ^ o2
.
-
PyObject *PyNumber_Or(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає “порозрядне або” o1 і o2 у разі успіху або
NULL
у разі помилки. Це еквівалент виразу Pythono1 | o2
.
-
PyObject *PyNumber_InPlaceAdd(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає результат додавання o1 і o2 або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 += o2
.
-
PyObject *PyNumber_InPlaceSubtract(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає результат віднімання o2 від o1 або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 -= o2
.
-
PyObject *PyNumber_InPlaceMultiply(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає результат множення o1 і o2 або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 *= o2
.
-
PyObject *PyNumber_InPlaceMatrixMultiply(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável desde a versão 3.7.
Повертає результат множення матриці на o1 і o2 або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 @= o2
.Adicionado na versão 3.5.
-
PyObject *PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає математичний рівень ділення o1 на o2 або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 //= o2
.
-
PyObject *PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
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)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає залишок від ділення o1 на o2 або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 %= o2
.
-
PyObject *PyNumber_InPlacePower(PyObject *o1, PyObject *o2, PyObject *o3)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Перегляньте вбудовану функцію
pow()
. ПовертаєNULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 **= o2
, коли o3 дорівнюєPy_None
, або альтернативного варіантуpow(o1, o2, o3)
інакше. Якщо o3 потрібно ігнорувати, передайте замість ньогоPy_None
(передачаNULL
для o3 призведе до незаконного доступу до пам’яті).
-
PyObject *PyNumber_InPlaceLshift(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає результат зсуву ліворуч o1 на o2 у разі успіху або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 <<= o2
.
-
PyObject *PyNumber_InPlaceRshift(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає результат зсуву праворуч o1 на o2 у разі успіху або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 >>= o2
.
-
PyObject *PyNumber_InPlaceAnd(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає “порозрядне та” o1 і o2 у разі успіху та
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 &= o2
.
-
PyObject *PyNumber_InPlaceXor(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає “порозрядне виняткове або” o1 на o2 у разі успіху або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 ^= o2
.
-
PyObject *PyNumber_InPlaceOr(PyObject *o1, PyObject *o2)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає “порозрядне або” o1 і o2 у разі успіху або
NULL
у разі помилки. Операція виконується на місці, якщо o1 її підтримує. Це еквівалент оператора Pythono1 |= o2
.
-
PyObject *PyNumber_Long(PyObject *o)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає o, перетворений на цілий об’єкт у разі успіху, або
NULL
у разі помилки. Це еквівалент виразу Pythonint(o)
.
-
PyObject *PyNumber_Float(PyObject *o)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає o, перетворений на об’єкт float у разі успіху, або
NULL
у разі помилки. Це еквівалент виразу Pythonfloat(o)
.
-
PyObject *PyNumber_Index(PyObject *o)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає o, перетворений на Python int у разі успіху або
NULL
з виключеннямTypeError
, яке виникає в разі помилки.Alterado na versão 3.10: O resultado sempre tem o tipo exato
int
. Anteriormente, o resultado poderia ter sido uma instância de uma subclasse deint
.
-
PyObject *PyNumber_ToBase(PyObject *n, int base)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Повертає ціле число 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)¶
- Parte da ABI Estável.
Повертає 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)¶
- Parte da ABI Estável desde a versão 3.8.
Повертає
1
, якщо o є цілим індексом (має заповнений слотnb_index
структуриtp_as_number
), і0
інакше. Ця функція завжди успішна.