Python

복소수 객체

type PyComplexObject

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

Py_complex cval

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

버전 3.15부터 사용 지원 중단(deprecated), 버전 3.20에서 제거 예정: Python 복소수를 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 구조체는 Python 복소수 객체를 위한 내보내기 형식을 정의합니다.

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 표현을 사용하여 복소수와 작업하는 함수도 제공합니다. 이러한 구조체를 매개변수로 받아 결과로 반환하는 함수들은 포인터를 통해 역참조하는 것이 아니라 값(value) 으로 처리함을 유의하십시오.

이 함수들은 Python 3.15부터 soft deprecated 상태입니다. 새로운 코드에서 복소수 산술 연산을 수행할 때 이 API를 사용하는 것을 지양하십시오. 대신 Number Protocol API를 사용하거나, 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부터 폐지됨.

분실물 보관소