Объекты с комплексными числами¶
Объекты с комплексными числами Python реализованы в виде двух различных типов, если смотреть с помощью C API: один - это объект Python, доступный для программ на Python, а другой - структура C, которая представляет фактическое значение комплексного числа. 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 Стабильный 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)¶
- Возвращаемое значение: Новая ссылка.
Создайте новый объект комплексного числа Python из значения C
Py_complex.
-
PyObject *PyComplex_FromDoubles(double real, double imag)¶
- Возвращаемое значение: Новая ссылка. Part of the Стабильный ABI.
Возвращает новый
PyComplexObjectобъект из real и imag.
-
double PyComplex_RealAsDouble(PyObject *op)¶
- Part of the Стабильный ABI.
Возвращает действительную часть op в виде C double.
-
double PyComplex_ImagAsDouble(PyObject *op)¶
- Part of the Стабильный 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__(), если это возможно.