[파이썬] 파이썬 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++ 프로그래밍 경험이 필요합니다.