Об’єкти комплексних чисел¶
Об’єкти комплексних чисел 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
errnotoEDOM.
-
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
errnotoEDOM.
Комплексні числа як об’єкти 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_complexvalue.
-
PyObject*
PyComplex_FromDoubles(double real, double imag)¶ - Return value: New reference.
Return a new
PyComplexObjectobject 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.0as a real value.Змінено в версії 3.8: Use
__index__()if available.