Avez-vous déjà rencontré une situation où vous deviez appeler une fonction C en utilisant python ? Cet article vous aidera à un niveau très basique, et si vous n'avez pas rencontré cette situation, vous serez heureux de savoir comment procéder.
Tout d'abord, écrivons une fonction simple en C et générons une bibliothèque partagée de ce fichier. Supposons que le nom du fichier soit function.c.
int myFunction(int num) { if (num == 0) //如果number为0,则不执行任何操作。 return 0; else // 如果number是2的幂,则返回1,否则返回0 num & (num - 1) == 0 ? return 1 : return 0 }
Compilation :
cc -fPIC -shared -o libfun.so function.c
Appel d'une fonction C depuis Python à l'aide de la bibliothèque ctypes (interface de fonction externe)
L'instruction ci-dessus générera une bibliothèque partagée appelée libfun.so. Voyons maintenant comment l'utiliser en python. En python, nous avons une bibliothèque appelée ctypes. En utilisant cette bibliothèque, nous pouvons utiliser les fonctions C en python.
Supposons que le nom du fichier soit function.py.
import ctypes NUM = 16 # libfun loaded to the python file # using fun.myFunction(), # C function can be accessed # but type of argument is the problem. fun = ctype.CDLL(libfun.so) # Now whenever argument # will be passed to the function # ctypes will check it. fun.myFunction.argtypes(ctypes.c_int) # now we can call this # function using instant (fun) # returnValue is the value # return by function written in C # code returnVale = fun.myFunction(NUM)
Cet article explique comment appeler des fonctions C en Python. J'espère qu'il sera utile aux amis dans le besoin !
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!