Об’єкти комплексних чисел¶
Об’єкти комплексних чисел Python реалізуються як два різних типи, якщо дивитися через C API: один є об’єктом Python, відкритим для програм Python, а інший є структурою C, яка представляє фактичне значення комплексного числа. API надає функції для роботи з обома.
Комплексні числа як C структури¶
Зауважте, що функції, які приймають ці структури як параметри та повертають їх як результати, роблять це за значенням, а не розіменовують їх через покажчики. Це узгоджено в усьому API.
-
Py_complex
¶ The C structure which corresponds to the value portion of a Python complex number object. Most of the functions for dealing with complex number objects use structures of this type as input or output values, as appropriate. It is defined as:
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
.If divisor is null, this method returns zero and sets
errno
toEDOM
.
-
Py_complex
_Py_c_pow
(Py_complex num, Py_complex exp)¶ Повертає піднесення num до степеня exp, використовуючи представлення C
Py_complex
.If num is null and exp is not a positive real number, this method returns zero and sets
errno
toEDOM
.
Комплексні числа як об’єкти 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.
Create a new Python complex number object from a C
Py_complex
value.
-
PyObject*
PyComplex_FromDoubles
(double real, double imag)¶ - Return value: New reference.
Return a new
PyComplexObject
object from real and imag.
-
Py_complex
PyComplex_AsCComplex
(PyObject *op)¶ Повертає значення
Py_complex
комплексного числа op.If op is not a Python complex number object but has a
__complex__()
method, this method will first be called to convert op to a Python complex number object. If__complex__()
is not defined then it falls back to__float__()
. If__float__()
is not defined then it falls back to__index__()
. Upon failure, this method returns-1.0
as a real value.Змінено в версії 3.8: Use
__index__()
if available.