Heim > Backend-Entwicklung > Python-Tutorial > Detaillierte Erklärung, wie Python C-Sprachfunktionen aufruft

Detaillierte Erklärung, wie Python C-Sprachfunktionen aufruft

黄舟
Freigeben: 2017-10-03 05:43:40
Original
2606 Leute haben es durchsucht

Der folgende Editor zeigt Ihnen ein Beispiel dafür, wie Python C-Sprachfunktionen aufruft. Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor und werfen wir einen Blick darauf

Obwohl Python allmächtig ist, erfordern einige spezielle Funktionen zur Ausführung die Sprache C. Auf diese Weise müssen Sie Python verwenden, um C-Code aufzurufen

Der spezifische Prozess:

C schreibt relevante Funktionen und kompiliert sie in a Bibliothek

Laden Sie dann diese Bibliotheken in Python und geben Sie die aufrufende Funktion an.

Diese Funktionen können char, int, float sein und auch Zeiger zurückgeben.

Das folgende Beispiel:

Rufen Sie die c-Funktion über Python auf und geben Sie den „Hallo, Welt-String“ zurück

Neu c-Sprache Die Datei hello.c


touch hello.c
Nach dem Login kopieren


#include <stdio.h>

char *get_str()
{
 return "hello,world"
}
Nach dem Login kopieren

wird in einer Bibliothek zusammengestellt


gcc -o hello.so --share -fPIC hello.c
Nach dem Login kopieren

Erstellen Sie ein neues Python-Skript


touch test.py
Nach dem Login kopieren


from ctypes import *

dll = CDLL("./hello.so")
dll.get_str.restype = c_char_p
str = dll.get_str()
print(string_at(str, 11))
Nach dem Login kopieren

Führen Sie das Python-Skript aus


[feng@arch python_c]$ python test.py 
hello,world
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie Python C-Sprachfunktionen aufruft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage