Python の複素数オブジェクトは、 C API 側から見ると二つの別個の型として実装されています: 一方は Python プログラムに対して公開されている Python のオブジェクトで、他方は実際の複素数値を表現する C の構造体です。 API では、これら双方を扱う関数を提供しています。
複素数の C 構造体を引数として受理したり、戻り値として返したりする関数は、ポインタ渡しを行うのではなく 値渡し を行うので注意してください。これは API 全体を通して一貫しています。
Python 複素数オブジェクトの値の部分に対応する C の構造体です。複素数オブジェクトを扱うほとんどの関数は、この型の構造体を場合に応じて入力や出力として使います。構造体は以下のように定義されています:
typedef struct {
double real;
double imag;
} Py_complex;
二つの複素数の和を C の Py_complex 型で返します。
二つの複素数の差を C の Py_complex 型で返します。
複素数 complex の符号反転 C の Py_complex 型で返します。
二つの複素数の積を C の Py_complex 型で返します。
二つの複素数の商を C の Py_complex 型で返します。
指数 exp の num 乗を C の Py_complex 型で返します。
この PyTypeObject のインスタンスは Python の複素数型を表現します。 Pythonの complex や types.ComplexType と同じオブジェクトです。
引数が PyComplexObject 型か PyComplexObject 型のサブタイプのときに真を返します。
バージョン 2.2 で変更: サブタイプを引数にとれるようになりました.
引数が PyComplexObject 型で、かつ PyComplexObject 型のサブタイプでないときに真を返します。
バージョン 2.2 で追加.
C の Py_complex 型から Python の複素数値を生成します。
新たな PyComplexObject オブジェクトを real と imag から生成します。
複素数値 op から Py_complex 型を生成します。