Python

복소수 객체

type PyComplexObject

파이썬 복소수 객체를 나타내는 PyObject의 서브 형.

Py_complex cval

C Py_complex 표현식을 사용한 복소수 값입니다.

버전 3.15에서 폐지되었고, 버전 3.20에서 제거됩니다: 파이썬 복소수를 C Py_complex 구조체로 변환하거나 그 역변환을 하려면 PyComplex_AsCComplex()\와 PyComplex_FromCComplex()\를 사용하십시오.

PyTypeObject PyComplex_Type
상의 안정 ABI.

PyTypeObject 인스턴스는 파이썬 복소수 형을 나타냅니다. 파이썬 계층의 complex와 같은 객체입니다.

int PyComplex_Check(PyObject *p)

인자가 PyComplexObjectPyComplexObject의 서브 형이면 참을 반환합니다. 이 함수는 항상 성공합니다.

int PyComplex_CheckExact(PyObject *p)

인자가 PyComplexObject이지만, PyComplexObject의 서브 유형이 아니면 참을 반환합니다. 이 함수는 항상 성공합니다.

PyObject *PyComplex_FromDoubles(double real, double imag)
반환값: 새 참조. 상의 안정 ABI.

realimag로 새로운 PyComplexObject 객체를 반환합니다. 에러면 예외를 설정하고 NULL을 반환합니다.

double PyComplex_RealAsDouble(PyObject *op)
상의 안정 ABI.

op의 실수부를 C double로 반환합니다.

op가 파이썬 복소수 객체가 아니지만 __complex__() 메서드가 있으면, 이 메서드는 먼저 op를 파이썬 복소수 객체로 변환하도록 그 메서드를 호출합니다. __complex__()가 정의되지 않았으면 PyFloat_AsDouble()을 호출하는 것으로 대체하고 그 결과를 반환합니다.

실패하면, 이 메서드는 예외를 설정하고 -1.0을 반환합니다. PyErr_Occurred()를 호출하여 에러를 확인해야 합니다.

버전 3.13에서 변경: 사용할 수 있다면 __complex__()를 사용합니다.

double PyComplex_ImagAsDouble(PyObject *op)
상의 안정 ABI.

op의 허수부를 C double로 반환합니다.

op가 파이썬 복소수 객체가 아니지만 __complex__() 메서드가 있으면, 이 메서드는 먼저 op를 파이썬 복소수 객체로 변환하도록 그 메서드를 호출합니다. __complex__()가 정의되지 않았으면 PyFloat_AsDouble()을 호출하는 것으로 대체하고 성공할 때 0.0을 반환합니다.

실패하면, 이 메서드는 예외를 설정하고 -1.0을 반환합니다. PyErr_Occurred()를 호출하여 에러를 확인해야 합니다.

버전 3.13에서 변경: 사용할 수 있다면 __complex__()를 사용합니다.

type Py_complex

이 C 구조체는 파이썬 복소수 객체에 대한 내보내기 형식을 정의합니다.

double real
double imag

구조체는 다음과 같이 정의됩니다:

typedef struct {
    double real;
    double imag;
} Py_complex;
PyObject *PyComplex_FromCComplex(Py_complex v)
반환값: 새 참조.

C Py_complex 값으로 새로운 파이썬 복소수 객체를 만듭니다. 에러면 예외를 설정하고 NULL을 반환합니다.

Py_complex PyComplex_AsCComplex(PyObject *op)

복소수 opPy_complex 값을 반환합니다.

op가 파이썬 복소수 객체가 아니지만 __complex__() 메서드가 있으면, 이 메서드는 먼저 op를 파이썬 복소수 객체로 변환하도록 그 메서드를 호출합니다. __complex__()가 정의되지 않았으면 __float__()로 대체합니다. __float__()가 정의되지 않았으면 __index__()로 대체합니다.

실패하면, 이 메서드는 예외를 설정하고 real-1.0으로 설정한 Py_complex를 반환합니다. PyErr_Occurred()를 호출하여 에러를 확인해야 합니다.

버전 3.8에서 변경: 사용할 수 있다면 __index__()를 사용합니다.

C 구조체로서의 복소수

API는 또한 Py_complex 표현식을 사용하여 복소수 처리를 위한 함수도 제공합니다. 이러한 구조체를 인수로 받거나 결과를 반환하는 함수들은 포인터를 통해 참조하는 것이 아니라 으로 처리한다는 점에 유의하십시오.

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의 음의 값을 반환합니다.

버전 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이면, 이 메서드는 0을 반환하고, errnoEDOM으로 설정합니다.

버전 3.15부터 폐지됨.

Py_complex _Py_c_pow(Py_complex num, Py_complex exp)

C Py_complex 표현을 사용하여 numexp 거듭제곱을 반환합니다.

num이 null이고 exp가 양의 실수가 아니면, 이 메서드는 0을 반환하고 errnoEDOM으로 설정합니다.

오버플로면 errnoERANGE으로 설정합니다.

버전 3.15부터 폐지됨.

double _Py_c_abs(Py_complex num)

복소수 num 의 절대값을 반환합니다.

오버플로면 errnoERANGE으로 설정합니다.

버전 3.15부터 폐지됨.

분실물 보관소