Объекты комплексных чисел¶
Объекты комплексных чисел в Python реализованы как два разных типа, если смотреть на них из API языка Си: один - это объект Python, открываемый программам Python, а другой - структура языка Си, которая представляет фактическое значение комплексного числа. API предоставляет функции для работы с обоими типами.
Комплексные числа как структуры языка Си¶
Обратите внимание, что функции, которые принимают эти структуры в качестве параметров и возвращают их в качестве результатов, делают это по значению, а не разыменовывают их через указатели. Это соответствует всему API.
- 
type Py_complex¶
- Структура C, соответствующая части значения объекта комплексного числа Python. Большинство функций для работы с объектами комплексных чисел используют структуры этого типа в качестве входных или выходных значений, в зависимости от ситуации. Она определяется следующим образом: - typedef struct { double real; double imag; } Py_complex; 
- 
Py_complex _Py_c_sum(Py_complex left, Py_complex right)¶
- Возвращает сумму двух комплексных чисел, используя представление C - Py_complex.
- 
Py_complex _Py_c_diff(Py_complex left, Py_complex right)¶
- Возвращает разность между двумя комплексными числами, используя представление C - Py_complex.
- 
Py_complex _Py_c_neg(Py_complex num)¶
- Возвращает отрицание комплексного числа num, используя представление C - Py_complex.
- 
Py_complex _Py_c_prod(Py_complex left, Py_complex right)¶
- Возвращает произведение двух комплексных чисел, используя представление C - Py_complex.
- 
Py_complex _Py_c_quot(Py_complex dividend, Py_complex divisor)¶
- Возвращает коэффициент двух комплексных чисел, используя представление C - Py_complex.- Если divisor равен null, этот метод возвращает ноль и устанавливает - errnoв- EDOM.
- 
Py_complex _Py_c_pow(Py_complex num, Py_complex exp)¶
- Возвращает экспоненцию num на exp, используя представление C - Py_complex.- Если num равно null и exp не является положительным действительным числом, этот метод возвращает ноль и устанавливает - errnoв- EDOM.
Комплексные числа как объекты Python¶
- 
PyTypeObject PyComplex_Type¶
-  Part of the Stable ABI.Этот экземпляр PyTypeObjectпредставляет тип комплексного числа Python. Это такой же объект, какcomplexв слое Python.
- 
int PyComplex_Check(PyObject *p)¶
- Возвращает true, если его аргумент является - PyComplexObjectили подтипом- PyComplexObject. Эта функция всегда успешна.
- 
int PyComplex_CheckExact(PyObject *p)¶
- Возвращает true, если ее аргумент является - PyComplexObject, но не является подтипом- PyComplexObject. Эта функция всегда успешна.
- 
PyObject *PyComplex_FromCComplex(Py_complex v)¶
- Return value: New reference.Создайте новый объект комплексного числа Python из значения C Py_complex.
- 
PyObject *PyComplex_FromDoubles(double real, double imag)¶
- Return value: New reference. Part of the Stable ABI.Возвращает новый объект PyComplexObjectиз real и imag.
- 
double PyComplex_RealAsDouble(PyObject *op)¶
-  Part of the Stable ABI.Возвращает вещественную часть op в виде C double. 
- 
double PyComplex_ImagAsDouble(PyObject *op)¶
-  Part of the Stable ABI.Возвращает мнимую часть op в виде C double. 
- 
Py_complex PyComplex_AsCComplex(PyObject *op)¶
- Возвращает значение - Py_complexкомплексного числа op.- Если op не является объектом комплексного числа Python, но имеет метод - __complex__(), то сначала будет вызван этот метод для преобразования op в объект комплексного числа Python. Если- __complex__()не определен, то происходит возврат к- __float__(). Если- __float__()не определено, то происходит возврат к- __index__(). При неудаче этот метод возвращает- -1.0как вещественное значение.- Изменено в версии 3.8: Используйте - __index__(), если доступно.