複數物件¶
-
type PyComplexObject¶
這個
PyObject的子型別代表一個 Python 複數物件。-
Py_complex cval¶
使用 C 的
Py_complex表示形式的複數值。自從版本 3.15 後不推薦使用,將會自版本 3.20 中移除。: Use
PyComplex_AsCComplex()andPyComplex_FromCComplex()to convert a Python complex number to/from the CPy_complexrepresentation.
-
Py_complex cval¶
-
PyTypeObject PyComplex_Type¶
- 為 穩定 ABI 的一部分.
這個
PyTypeObject的實例代表 Python 複數型別。它與 Python 層中的complex是同一個物件。
-
int PyComplex_Check(PyObject *p)¶
如果其引數是一個
PyComplexObject或者是PyComplexObject的子型別,則會回傳 true。這個函式不會失敗。
-
int PyComplex_CheckExact(PyObject *p)¶
如果其引數是一個
PyComplexObject,但不是PyComplexObject的子型別,則會回傳 true。這個函式不會失敗。
-
PyObject *PyComplex_FromDoubles(double real, double imag)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分.
從 real 和 imag 回傳一個新的
PyComplexObject物件。在錯誤時回傳NULL並設定例外。
-
double PyComplex_RealAsDouble(PyObject *op)¶
- 為 穩定 ABI 的一部分.
以 C 的 double 形式回傳 op 的實部。
如果 op 不是 Python 複數物件,但有一個
__complex__()方法,則首先會呼叫該方法將 op 轉換為 Python 複數物件。如果__complex__()並未定義,那麼它會回退到呼叫PyFloat_AsDouble()並回傳其結果。失敗時,此方法回傳
-1.0並設定例外,因此應該呼叫PyErr_Occurred()來檢查錯誤。在 3.13 版的變更: 如果可用則使用
__complex__()。
-
double PyComplex_ImagAsDouble(PyObject *op)¶
- 為 穩定 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)¶
- 回傳值:新的參照。
從 C 的
Py_complex值建立一個新的 Python 複數物件。在錯誤時回傳NULL並設定例外。
-
Py_complex PyComplex_AsCComplex(PyObject *op)¶
回傳複數 op 的
Py_complex值。如果 op 不是 Python 複數物件,但有一個
__complex__()方法,則首先會呼叫該方法將 op 轉換為 Python 複數物件。如果__complex__()並未定義,那麼它會回退到__float__()。如果__float__()未定義,則它將繼續回退為__index__()。失敗時,此方法回傳
Py_complex並將real設為-1.0,並設定例外,因此應該呼叫PyErr_Occurred()來檢查錯誤。在 3.8 版的變更: 如果可用則使用
__index__()。
作為 C 結構的複數¶
此 API 也提供了使用 Py_complex 表示形式來處理複數的函式。請注意,接受這些結構作為參數並將它們作為結果回傳的函式是按值 (by value) 執行的,而不是透過指標取消參照 (dereference) 它們。
Please note, that these functions are soft deprecated since Python 3.15. Avoid using this API in a new code to do complex arithmetic: either use the Number Protocol API or use native complex types, like 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)¶
以 C 的
Py_complex表示形式來回傳複數 num 的相反數 (negation)。在 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 為 null,則此方法會回傳零並將
errno設定為EDOM。在 3.15 版之後被棄用.
-
Py_complex _Py_c_pow(Py_complex num, Py_complex exp)¶
以 C 的
Py_complex表示形式來回傳 num 的 exp 次方的結果。如果 num 為 null 且 exp 不是正實數,則此方法會回傳零並將
errno設定為EDOM。Set
errnotoERANGEon overflows.在 3.15 版之後被棄用.
-
double _Py_c_abs(Py_complex num)¶
回傳複數 num 的絕對值。
Set
errnotoERANGEon overflows.在 3.15 版之後被棄用.