Содержание страницы
Объекты комплексных чисел¶Complex Number Objects
-
type PyComplexObject¶
Этот подтип
PyObjectпредставляет объект комплексного числа Python.-
Py_complex cval¶
Значение комплексного числа, использующее представление C
Py_complex.Устарело с версии 3.15, будет удалено в версии 3.20: Используйте
PyComplex_AsCComplex()иPyComplex_FromCComplex()для преобразования комплексного числа Python в представление CPy_complexи обратно.
-
Py_complex cval¶
-
PyTypeObject PyComplex_Type¶
- Часть Stable ABI.
Этот экземпляр
PyTypeObjectпредставляет тип комплексного числа Python. Это тот же объект, что иcomplexв слое Python.
-
int PyComplex_Check(PyObject *p)¶
Возвращает истину, если аргумент является
PyComplexObjectили подтипомPyComplexObject. Эта функция всегда завершается успешно.
-
int PyComplex_CheckExact(PyObject *p)¶
Возвращает истину, если аргумент является
PyComplexObject, но не подтипомPyComplexObject. Эта функция всегда завершается успешно.
-
PyObject *PyComplex_FromDoubles(double real, double imag)¶
- Возвращаемое значение: новая ссылка. Часть Stable ABI.
Возвращает новый объект
PyComplexObjectиз real и imag. В случае ошибки возвращаетNULLс установленным исключением.
-
double PyComplex_RealAsDouble(PyObject *op)¶
- Часть Stable ABI.
Возвращает действительную часть op как C double.
Если op не является объектом комплексного числа Python, но имеет метод
__complex__(), этот метод будет сначала вызван для преобразования op в объект комплексного числа Python. Если__complex__()не определён, то выполняется вызовPyFloat_AsDouble()и возвращается его результат.При сбое этот метод возвращает
-1.0с установленным исключением, поэтому следует вызватьPyErr_Occurred()для проверки ошибок.Изменено в версии 3.13: Используйте
__complex__(), если доступно.
-
double PyComplex_ImagAsDouble(PyObject *op)¶
- Часть Stable ABI.
Возвращает мнимую часть op как C double.
Если op не является объектом комплексного числа Python, но имеет метод
__complex__(), этот метод будет сначала вызван для преобразования op в объект комплексного числа Python. Если__complex__()не определён, то выполняется вызовPyFloat_AsDouble()и в случае успеха возвращается0.0.При сбое этот метод возвращает
-1.0с установленным исключением, поэтому следует вызватьPyErr_Occurred()для проверки ошибок.Изменено в версии 3.13: Используйте
__complex__(), если доступно.
-
type Py_complex¶
Эта структура C определяет формат экспорта для объекта комплексного числа Python.
Структура определяется как:
typedef struct { double real; double imag; } Py_complex;
-
PyObject *PyComplex_FromCComplex(Py_complex v)¶
- Возвращаемое значение: новая ссылка.
Создаёт новый объект комплексного числа Python из значения C
Py_complex. ВозвращаетNULLс установленным исключением в случае ошибки.
-
Py_complex PyComplex_AsCComplex(PyObject *op)¶
Возвращает значение
Py_complexкомплексного числа op.Если op не является объектом комплексного числа Python, но имеет метод
__complex__(), сначала вызывается этот метод для преобразования op в объект комплексного числа Python. Если__complex__()не определён, используется__float__(). Если__float__()не определён, используется__index__().В случае ошибки метод возвращает
Py_complexсreal, установленным в-1.0, и с установленным исключением, поэтому для проверки ошибок следует вызватьPyErr_Occurred().Изменено в версии 3.8: Используйте
__index__(), если доступно.
Комплексные числа как C-структуры¶Complex Numbers as C Structures
API также предоставляет функции для работы с комплексными числами, использующие представление Py_complex. Обратите внимание, что функции, принимающие эти структуры в качестве параметров и возвращающие их как результаты, делают это по значению, а не через разыменование указателей.
Обратите внимание, что эти функции мягко устарели начиная с Python 3.15. Избегайте использования этого API в новом коде для арифметики комплексных чисел: используйте либо API протокол Number, либо встроенные комплексные типы, такие как double complex.
-
Py_complex _Py_c_sum(Py_complex left, Py_complex right)¶
Возвращает сумму двух комплексных чисел, используя C-представление
Py_complex.Устарело с версии 3.15.
-
Py_complex _Py_c_diff(Py_complex left, Py_complex right)¶
Возвращает разность двух комплексных чисел, используя C-представление
Py_complex.Устарело с версии 3.15.
-
Py_complex _Py_c_neg(Py_complex num)¶
Возвращает отрицание комплексного числа num, используя C-представление
Py_complex.Устарело с версии 3.15.
-
Py_complex _Py_c_prod(Py_complex left, Py_complex right)¶
Возвращает произведение двух комплексных чисел, используя C-представление
Py_complex.Устарело с версии 3.15.
-
Py_complex _Py_c_quot(Py_complex dividend, Py_complex divisor)¶
Возвращает частное двух комплексных чисел, используя C-представление
Py_complex.Если divisor равен нулю, метод возвращает ноль и устанавливает
errnoвEDOM.Устарело с версии 3.15.
-
Py_complex _Py_c_pow(Py_complex num, Py_complex exp)¶
Возвращает возведение num в степень exp, используя C-представление
Py_complex.Если num равен нулю, а exp не является положительным действительным числом, метод возвращает ноль и устанавливает
errnoвEDOM.Устанавливает
errnoвERANGEпри переполнениях.Устарело с версии 3.15.
-
double _Py_c_abs(Py_complex num)¶
Возвращает абсолютное значение комплексного числа num.
Устанавливает
errnoвERANGEпри переполнениях.Устарело с версии 3.15.