Содержание страницы
Объекты комплексных чисел¶Complex Number Objects
Объекты комплексных чисел в Python реализованы как два различных типа с точки зрения C API: один – это объект Python, доступный программам Python, а другой – структура C, представляющая фактическое значение комплексного числа. API предоставляет функции для работы с обоими.
Комплексные числа как C-структуры¶Complex Numbers as C Structures
Обратите внимание, что функции, которые принимают эти структуры как параметры и возвращают их как результаты, делают это по значению, а не через разыменование указателей. Это единообразно во всём 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 равен нулю, метод возвращает ноль и устанавливает
errnoвEDOM.
-
Py_complex
_Py_c_pow(Py_complex num, Py_complex exp)¶ Возвращает возведение num в степень exp, используя C-представление
Py_complex.Если num равен нулю, а exp не является положительным действительным числом, метод возвращает ноль и устанавливает
errnoвEDOM.
Комплексные числа как объекты Python¶Complex Numbers as Python Objects
-
PyTypeObject
PyComplex_Type¶ Этот экземпляр
PyTypeObjectпредставляет тип комплексного числа Python. Это тот же объект, что иcomplexв слое Python.
-
int
PyComplex_Check(PyObject *p)¶ Возвращает истину, если аргумент является
PyComplexObjectили подтипомPyComplexObject. Эта функция всегда завершается успешно.
-
int
PyComplex_CheckExact(PyObject *p)¶ Возвращает истину, если аргумент является
PyComplexObject, но не подтипомPyComplexObject. Эта функция всегда завершается успешно.
-
PyObject*
PyComplex_FromCComplex(Py_complex v)¶ - Возвращаемое значение: новая ссылка.
Создаёт новый объект комплексного числа Python из значения C
Py_complex.
-
PyObject*
PyComplex_FromDoubles(double real, double imag)¶ - Возвращаемое значение: новая ссылка.
Возвращает новый объект
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__(), если доступно.