Объекты комплексных чисел¶
В Python’е объекты комплексных чисел реализуются в виде двух различных типов при просмотре из C API: одни является объектом Python, открытым для Python программ, а другой является структурой C, которая представляет действительное значение комплексного числа. API предоставляет функции для работы с обоими функциями.
Комплексные числа как C-структуры¶
Обратите внимание, что функции, которые принимают эти структуры в качестве параметров и возвращает их в качестве результатов, делают это по значению вместо того, чтобы обособлять их через указатели. Это согласовано во всем API.
-
Py_complex
¶ Структура с, которая соответствует значащей части 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 complex)¶ Возвращает отрицание комплексного числа complex, используя представление 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
¶ Сущность
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.
Возвращает новый объект
PyComplexObject
из real и imag.
-
Py_complex
PyComplex_AsCComplex
(PyObject *op)¶ Возвращает
Py_complex
значение комплексного числа op.Если op не является объектом Python комплексного числа, но имеет метод
__complex__()
, этот метод будет сначала вызван для преобразования op в Python объект комплексного числа. Если__complex__()
не определен, он возвращается__float__()
. Если__float__()
не определен, он возвращается к__index__()
. При ошибке метод возвращает-1.0
как реальное значение.Изменено в версии 3.8: Используйте
__index__()
, если возможно.