Maison > développement back-end > Tutoriel Python > Explication détaillée de la façon dont Python appelle les fonctions du langage C

Explication détaillée de la façon dont Python appelle les fonctions du langage C

黄舟
Libérer: 2017-10-03 05:43:40
original
2606 Les gens l'ont consulté

L'éditeur suivant vous présentera un exemple de la façon dont Python appelle les fonctions du langage C. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil

Bien que Python soit tout-puissant, certaines fonctions spéciales nécessitent le langage C pour être exécutées. De cette façon, vous devez utiliser python pour appeler le code c

Le processus spécifique :

C écrit les fonctions pertinentes et les compile dans un library

Chargez ensuite ces bibliothèques en python et spécifiez la fonction appelante.

Ces fonctions peuvent être char, int, float et peuvent également renvoyer des pointeurs.

L'exemple suivant :

Appelez la fonction c via python et renvoyez la "hello, world string"

Nouveau langage c Le fichier hello.c


touch hello.c
Copier après la connexion


#include <stdio.h>

char *get_str()
{
 return "hello,world"
}
Copier après la connexion

est compilé dans une bibliothèque


gcc -o hello.so --share -fPIC hello.c
Copier après la connexion

Créer un nouveau script python


touch test.py
Copier après la connexion


from ctypes import *

dll = CDLL("./hello.so")
dll.get_str.restype = c_char_p
str = dll.get_str()
print(string_at(str, 11))
Copier après la connexion

Exécuter le script python


[feng@arch python_c]$ python test.py 
hello,world
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal