La plupart des modules Python sont codés en C, les types simples en
générale. Ce que tu veux faire c'est de l'interfaçage apparement, c'est
à dire utiliser du code C/C++ (ou autre) dans du Python. Pour faire ça
il va te falloir un pe de motive, c'est pas facile au début. Sous
windows on créer un module en C et on le compile de façon à obtenir une
librairie dynamique .dll, sous linux .so. Je ne sais pas comment on
fait sous win, mais sous linux une fois que tu as ton module compilé en
librairie dynamique (.so) il suffit de faire un import avec le nom de
la librairie dynamique pour utiliser les fonctions interfacées.
Voici par exemple un module écrit en C pour intarfacer printf.
/* Fichier stdio.c
Interfaçage de la fonction printf */
#include "Python.h"
#ifdef __cplusplus
extern "C" {
#endif
// déclaration de la fonction d'interfaçage
static PyObject * stdio_printf(PyObject *self, PyObject *args);
/* définition du tableau de structures pour la description des
* fonctions
*/
static PyMethodDef stdioMethods[] = {
{"printf", stdio_printf, METH_VARARGS, "Pareil que printf en C"},
{NULL, NULL, 0, NULL} /* Sentinel */
};
// définition de la fonction d'interfaçage
static PyObject * stdio_printf(PyObject *self, PyObject *args) {
const char *commande;
int retour;
if (!PyArg_ParseTuple(args, "s", &commande))
return NULL;
retour = printf(commande);
return Py_BuildValue("i", retour);
}
// fonction d'initialisation du module stdio
PyMODINIT_FUNC initstdio(void) {
Py_InitModule("stdio", stdioMethods);
}
vas voir sur le sites de Python, section API Python/C, Extending/Integrating C/Python
Bonne chance.
Bouba
|