[파이썬] 파이썬 C 확장 예제

파이썬 C 확장은 C 또는 C++로 작성된 코드를 파이썬에서 사용할 수 있도록 하는 방법입니다. 파이썬 C 확장 모듈은 파이썬의 내장 모듈과 동일한 방식으로 사용할 수 있으며, 성능 최적화와 하드웨어 제어 등의 목적으로 사용됩니다. 아래는 간단한 파이썬 C 확장 예제를 제공합니다.

C 확장 모듈 작성 및 컴파일:

먼저 C로 작성된 확장 모듈을 작성하고 컴파일해야 합니다. 예를 들어, 다음과 같은 C 코드를 가진 example.c 파일을 작성합니다.

#include <Python.h>

// 파이썬에서 호출할 함수
static PyObject* example_hello(PyObject* self, PyObject* args) {
    const char* name;

    if (!PyArg_ParseTuple(args, "s", &name)) {
        return NULL;
    }

    return Py_BuildValue("s", name);
}

// 모듈 메서드 테이블
static PyMethodDef ExampleMethods[] = {
    {"hello", example_hello, METH_VARARGS, "Greet the user."},
    {NULL, NULL, 0, NULL}
};

// 모듈 초기화 함수
static struct PyModuleDef examplemodule = {
    PyModuleDef_HEAD_INIT,
    "example",   // 모듈 이름
    NULL,        // 모듈 독스트링
    -1,
    ExampleMethods
};

// 모듈 초기화 함수 호출
PyMODINIT_FUNC PyInit_example(void) {
    return PyModule_Create(&examplemodule);
}

이제 위 코드를 컴파일하여 example 모듈을 생성합니다. 컴파일 방법은 운영체제 및 개발 환경에 따라 다를 수 있습니다.

파이썬에서 C 확장 모듈 사용:

C 확장 모듈을 파이썬에서 사용하려면 다음과 같이 할 수 있습니다:

# example 모듈 import
import example

# hello 함수 호출
result = example.hello("Alice")
print(result)  # "Alice" 출력

이 예제에서는 C로 작성된 example 모듈을 파이썬에서 import하고 모듈의 함수를 호출하여 사용합니다.

C 확장은 파이썬의 성능 향상 및 기존 C/C++ 코드의 재사용을 위해 사용되며, PyPI에서 다양한 C 확장 모듈을 찾을 수 있습니다. C 확장을 작성하려면 파이썬 C API에 대한 이해와 C/C++ 프로그래밍 경험이 필요합니다.