Maison > Article > développement back-end > Comment puis-je utiliser SWIG pour interfacer une classe Python avec un programme C ?
Interfacer une classe Python avec du code C
Q : Comment puis-je implémenter une classe Python qui peut être appelée à partir d'un programme C plus vaste ?
A : Pour interfacer une classe Python avec du code C, il y a deux étapes clés :
1. Exposer l'interface en Python :
2. Intégration de Python dans l'application C :
Exemple :
myif.h (interface C) :
<code class="cpp">class myif { public: virtual float myfunc(float a) = 0; };</code>
mycl .py (implémentation Python):
<code class="python">import module class MyCl(module.myif): def myfunc(self,a): return a*2.0</code>
main.cc (C embedding Python):
<code class="cpp">#include "runtime.h" myif *python2interface(PyObject *obj) { ... } int main() { Py_Initialize(); ... // import and call Python class myif *inst = python2interface(instance); std::cout << inst->myfunc(5.5) << std::endl; Py_Finalize(); return 0; }</code>
Cette approche vous permet de créer Python implémentations de votre interface C et intégrez-les de manière transparente dans le programme C plus vaste.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!