Objetos de números complexos¶
Os objetos de números complexos do Python são implementados como dois tipos distintos quando visualizados na API C: um é o objeto Python exposto aos programas Python e o outro é uma estrutura C que representa o valor real do número complexo. A API fornece funções para trabalhar com ambos.
Números complexos como estruturas C.¶
Observe que as funções que aceitam essas estruturas como parâmetros e as retornam como resultados o fazem por valor em vez de desreferenciá-las por meio de ponteiros. Isso é consistente em toda a API.
-
type Py_complex¶
The C structure which corresponds to the value portion of a Python complex number object. Most of the functions for dealing with complex number objects use structures of this type as input or output values, as appropriate.
The structure is defined as:
typedef struct { double real; double imag; } Py_complex;
-
Py_complex _Py_c_sum(Py_complex left, Py_complex right)¶
Retorna a soma de dois números complexos, utilizando a representação C
Py_complex
.
-
Py_complex _Py_c_diff(Py_complex left, Py_complex right)¶
Retorna a diferença entre dois números complexos, utilizando a representação C
Py_complex
.
-
Py_complex _Py_c_neg(Py_complex num)¶
Retorna a negação do número complexo num, utilizando a representação C
Py_complex
.
-
Py_complex _Py_c_prod(Py_complex left, Py_complex right)¶
Retorna o produto de dois números complexos, utilizando a representação C
Py_complex
.
-
Py_complex _Py_c_quot(Py_complex dividend, Py_complex divisor)¶
Retorna o quociente de dois números complexos, utilizando a representação C
Py_complex
.Se divisor é nulo, este método retorna zero e define
errno
paraEDOM
.
-
Py_complex _Py_c_pow(Py_complex num, Py_complex exp)¶
Retorna a exponenciação de num por exp, utilizando a representação C
Py_complex
Se num for nulo e exp não for um número real positivo, este método retorna zero e define
errno
paraEDOM
.
Números complexos como objetos Python¶
-
PyTypeObject PyComplex_Type¶
- Parte da ABI Estável.
Esta instância de
PyTypeObject
representa o tipo de número complexo Python. É o mesmo objeto quecomplex
na camada Python.
-
int PyComplex_Check(PyObject *p)¶
Retorna true se seu argumento é um
PyComplexObject
ou um subtipo dePyComplexObject
. Esta função sempre tem sucesso.
-
int PyComplex_CheckExact(PyObject *p)¶
Retorna true se seu argumento é um
PyComplexObject
, mas não um subtipo dePyComplexObject
. Esta função sempre tem sucesso.
-
PyObject *PyComplex_FromCComplex(Py_complex v)¶
- Retorna valor: Nova referência.
Create a new Python complex number object from a C
Py_complex
value. ReturnNULL
with an exception set on error.
-
PyObject *PyComplex_FromDoubles(double real, double imag)¶
- Retorna valor: Nova referência. Parte da ABI Estável.
Return a new
PyComplexObject
object from real and imag. ReturnNULL
with an exception set on error.
-
double PyComplex_RealAsDouble(PyObject *op)¶
- Parte da ABI Estável.
Retorna a parte real de op como um double C.
Upon failure, this method returns
-1.0
with an exception set, so one should callPyErr_Occurred()
to check for errors.
-
double PyComplex_ImagAsDouble(PyObject *op)¶
- Parte da ABI Estável.
Retorna a parte imaginária de op como um double C.
-
Py_complex PyComplex_AsCComplex(PyObject *op)¶
Retorna o valor
Py_complex
do número complexo op.If op is not a Python complex number object but has a
__complex__()
method, this method will first be called to convert op to a Python complex number object. If__complex__()
is not defined then it falls back to__float__()
. If__float__()
is not defined then it falls back to__index__()
.Upon failure, this method returns
Py_complex
withreal
set to-1.0
and with an exception set, so one should callPyErr_Occurred()
to check for errors.Alterado na versão 3.8: Usa
__index__()
, se disponível.