Объекты комплексных чисел
Объекты комплексных чисел в Python реализованы как два отдельных типа, если рассматривать их с точки зрения API C: один — это объект Python, доступный для программ Python, а другой — структура C, представляющая фактическое значение комплексного числа. API предоставляет функции для работы с обоими.
Комплексные числа как структуры C
Обратите внимание, что функции, которые принимают эти структуры в качестве параметров и возвращают их в качестве результатов, делают это по значению, а не де-реферируя их через указатели. Это согласуется с API в целом.
-
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
-
PyComplexObject Этот подтип
PyObjectпредставляет собой объект комплексного числа 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) - Возвращаемое значение: новая ссылка.
Создает новый объект комплексного числа Python из значения C
Py_complex.
-
PyObject* PyComplex_FromDoubles(double real, double imag) - Возвращаемое значение: новая ссылка.
Возвращает новый объект
PyComplexObjectиз real и imag.
-
double PyComplex_RealAsDouble(PyObject *op) Возвращает вещественную часть op как C
double
-
double PyComplex_ImagAsDouble(PyObject *op) Возвращает мнимую часть 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__(), если он доступен.
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.9/c-api/complex.html