Protocolo de números
Protocolo de números#
int PyNumber_Check(PyObject o) * Part of the Stable ABI.
Retorna "1" si el objeto o proporciona protocolos numéricos, y falso en caso contrario. Esta función siempre finaliza con éxito.
Distinto en la versión 3.8: Retorna "1" si o es un índice entero.
PyObject PyNumber_Add(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado de agregar o1 y o2, o "NULL" en caso de falla. Este es el equivalente de la expresión de Python "o1 + o2".
PyObject PyNumber_Subtract(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado de restar o2 de o1, o "NULL" en caso de falla. Este es el equivalente de la expresión de Python "o1 - o2".
PyObject PyNumber_Multiply(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado de multiplicar o1 y o2, o "NULL" en caso de error. Este es el equivalente de la expresión de Python "o1 * o2".
PyObject PyNumber_MatrixMultiply(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI since version 3.7.
Retorna el resultado de la multiplicación de matrices en o1 y o2, o "NULL" en caso de falla. Este es el equivalente de la expresión de Python "o1 @ o2".
Added in version 3.5.
PyObject PyNumber_FloorDivide(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el cociente de la división entera a la baja entre o1 y o2, o "NULL" en caso de error. Este es el equivalente de la expresión de Python "o1 // o2".
PyObject PyNumber_TrueDivide(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna una aproximación razonable para el valor matemático de o1 dividido por o2 o "NULL" en caso de falla. El valor de retorno es "aproximado" porque los números binarios de punto flotante son aproximados; No es posible representar todos los números reales en base dos. Esta función puede retornar un valor de punto flotante cuando se pasan dos enteros. Es equivalente a la expresión de Python "o1 / o2".
PyObject PyNumber_Remainder(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resto de la división entera a la baja entre o1 y o2, o "NULL" en caso de error. Este es el equivalente de la expresión de Python "o1 % o2".
PyObject PyNumber_Divmod(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Vea la función incorporada "divmod()". Retorna "NULL" en caso de falla. Este es el equivalente de la expresión de Python "divmod (o1, o2)".
PyObject PyNumber_Power(PyObject o1, PyObject o2, PyObject o3) Return value: New reference. Part of the Stable ABI.
Consulte la función incorporada "pow()". Retorna "NULL" en caso de falla. Este es el equivalente de la expresión de Python "pow(o1, o2, o3)", donde o3 es opcional. Si se ignora o3, pase "Py_None" en su lugar (pasar "NULL" por o3 provocaría un acceso ilegal a la memoria).
PyObject PyNumber_Negative(PyObject o) Return value: New reference. Part of the Stable ABI.
Retorna la negación de o en caso de éxito o "NULL" en caso de error. Este es el equivalente de la expresión de Python "-o".
PyObject PyNumber_Positive(PyObject o) Return value: New reference. Part of the Stable ABI.
Retorna o en caso de éxito o "NULL" en caso de error. Este es el equivalente de la expresión de Python "+o".
PyObject PyNumber_Absolute(PyObject o) Return value: New reference. Part of the Stable ABI.
Retorna el valor absoluto de o o "NULL" en caso de error. Este es el equivalente de la expresión de Python "abs(o)".
PyObject PyNumber_Invert(PyObject o) Return value: New reference. Part of the Stable ABI.
Retorna la negación bit a bit de o en caso de éxito o "NULL" en caso de error. Este es el equivalente de la expresión de Python "~o".
PyObject PyNumber_Lshift(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado del desplazamiento a la izquierda o1 por o2 en caso de éxito o "NULL" en caso de error. Este es el equivalente de la expresión de Python "o1 << o2".
PyObject PyNumber_Rshift(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado del desplazamiento a la derecha o1 por o2 en caso de éxito o "NULL" en caso de error. Este es el equivalente de la expresión de Python "o1 >> o2".
PyObject PyNumber_And(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el "bit a bit y" (bitwise and) de o1 y o2 en caso de éxito y "NULL" en caso de error. Este es el equivalente de la expresión de Python "o1 & o2".
PyObject PyNumber_Xor(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el "bit a bit o exclusivo" (bitwise exclusive or) de o1 por o2 en caso de éxito, o "NULL" en caso de error. Este es el equivalente de la expresión de Python "o1 ^ o2".
PyObject PyNumber_Or(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el "bit a bit o" (bitwise or) de o1 y o2 en caso de éxito, o "NULL" en caso de error. Este es el equivalente de la expresión de Python "o1 | o2".
PyObject PyNumber_InPlaceAdd(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado de agregar o1 y o2, o "NULL" en caso de falla. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 += o2".
PyObject PyNumber_InPlaceSubtract(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado de restar o2 de o1, o "NULL" en caso de falla. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 -= o2".
PyObject PyNumber_InPlaceMultiply(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado de multiplicar o1 y o2, o "NULL" en caso de error. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 *= o2".
PyObject PyNumber_InPlaceMatrixMultiply(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI since version 3.7.
Retorna el resultado de la multiplicación de matrices en o1 y o2, o "NULL" en caso de falla. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 @= o2".
Added in version 3.5.
PyObject PyNumber_InPlaceFloorDivide(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el cociente de la división entera a la baja entre o1 y o2, o "NULL" en caso de error. La operación se realiza in situ (in-place) cuando o1 lo admite. Es el equivalente de la sentencia de Python "o1 //= o2".
PyObject PyNumber_InPlaceTrueDivide(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna una aproximación razonable para el valor matemático de o1 dividido por o2 o "NULL" en caso de falla. El valor de retorno es "aproximado" porque los números binarios de coma flotante son aproximados; No es posible representar todos los números reales en base dos. Esta función puede retornar un valor de punto flotante cuando se pasan dos enteros. La operación se realiza en su lugar (in-place) cuando o1 lo admite.
PyObject PyNumber_InPlaceRemainder(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resto de dividir o1 entre o2 o "NULL" en caso de error. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1%= o2".
PyObject PyNumber_InPlacePower(PyObject o1, PyObject o2, PyObject o3) Return value: New reference. Part of the Stable ABI.
Consulte la función incorporada "pow()". Retorna "NULL" en caso de falla. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 = o2" cuando o3 es "Py_None", o una variante en su lugar (in- place) de "pow (o1, o2, o3)" de lo contrario. Si se ignora o3, pase "Py_None" en su lugar (pasar "NULL" para o3 provocaría un acceso ilegal a la memoria).
PyObject PyNumber_InPlaceLshift(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado del desplazamiento a la izquierda o1 por o2 en caso de éxito o "NULL" en caso de error. La operación se realiza en su sitio (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 <<= o2".
PyObject PyNumber_InPlaceRshift(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el resultado del desplazamiento a la derecha o1 por o2 en caso de éxito o "NULL" en caso de error. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 >>= o2".
PyObject PyNumber_InPlaceAnd(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el "bit a bit y" (bitwise and) de o1 y o2 en caso de éxito y "NULL" en caso de error. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 &= o2".
PyObject PyNumber_InPlaceXor(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el "bit a bit o exclusivo" (bitwise exclusive or) de o1 por o2 en caso de éxito, o "NULL" en caso de error. La operación se realiza en su lugar (in-place) cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 ^= o2".
PyObject PyNumber_InPlaceOr(PyObject o1, PyObject o2) Return value: New reference.* Part of the Stable ABI.
Retorna el "bit a bit o" (bitwise or) de o1 y o2 en caso de éxito, o "NULL" en caso de error. La operación se realiza en su lugar in-place cuando o1 lo admite. Este es el equivalente de la declaración de Python "o1 |= o2".
PyObject PyNumber_Long(PyObject o) Return value: New reference. Part of the Stable ABI.
Retorna el o convertido a un objeto entero en caso de éxito, o "NULL" en caso de error. Este es el equivalente de la expresión de Python "int(o)".
PyObject PyNumber_Float(PyObject o) Return value: New reference. Part of the Stable ABI.
Retorna el o convertido a un objeto flotante en caso de éxito o "NULL" en caso de error. Este es el equivalente de la expresión de Python "float(o)".
PyObject PyNumber_Index(PyObject o) Return value: New reference. Part of the Stable ABI.
Retorna el o convertido aun entero de Python (int) en caso de éxito o "NULL" con una excepción "TypeError" lanzada en caso de error.
Distinto en la versión 3.10: El resultado siempre tiene el tipo exacto "int". Anteriormente, el resultado podía ser una instancia de una subclase de "int".
PyObject PyNumber_ToBase(PyObject n, int base) Return value: New reference. Part of the Stable ABI.
Retorna el entero n convertido a base base como una cadena de caracteres. El argumento base debe ser uno de 2, 8, 10 o 16. Para la base 2, 8 o 16, la cadena retornada está prefijada con un marcador base de "'0b'"', "'0o'" o "'0x'", respectivamente. Si n no es un entero (int) Python, primero se convierte con "PyNumber_Index()".
Py_ssize_t PyNumber_AsSsize_t(PyObject o, PyObject exc) * Part of the Stable ABI.*
Retorna o convertido a un valor "Py_ssize_t" si o puede interpretarse como un entero. Si la llamada falla, se lanza una excepción y se retorna "-1".
Si o puede convertirse a un entero de Python pero el intento de convertirlo a un valor "Py_ssize_t" lanzaría un "OverflowError", entonces el argumento exc es el tipo de excepción que se lanzará (normalmente "IndexError" o "OverflowError"). Si exc es "NULL", la excepción se borra y el valor se recorta a "PY_SSIZE_T_MIN" para un entero negativo o a "PY_SSIZE_T_MAX" para un entero positivo.
int PyIndex_Check(PyObject o) * Part of the Stable ABI since version 3.8.
Retorna "1" si o es un entero índice (tiene la ranura "nb_index" de la estructura "tp_as_number" rellenada), y "0" en caso contrario. Esta función siempre finaliza con éxito.