더북(TheBook)

이 함수의 코드는 약 40줄이다. ctypes 모듈을 사용해 호출할 수 있는 단순한 C 구현보다 네 배 정도 길다. 또한, 확장 모듈을 설정하고 초기화하기 위해 준비 코드가 추가로 필요하다. 다음 코드를 보라.

/* init.c */
#include "my_extension.h"

static PyMethodDef my_extension_methods[] = {
    {
        "dot_product",
        dot_product,
        METH_VARARGS,
        "Compute dot product",
    },
    {
        NULL,
        NULL,
        0,
        NULL,
    }, 
};

static struct PyModuleDef my_extension = {
    PyModuleDef_HEAD_INIT,
    "my_extension",
    "My C-extension module",
    -1,
    my_extension_methods,
};

PyMODINIT_FUNC
PyInit_my_extension(void)
{
    return PyModule_Create(&my_extension);
}