Heim >Backend-Entwicklung >Python-Tutorial >So rufen Sie eine C-Funktion in Python auf
Haben Sie jemals eine Situation erlebt, in der Sie eine C-Funktion mit Python aufrufen mussten? Dieser Artikel wird Ihnen auf einer sehr grundlegenden Ebene helfen. Wenn Sie diese Situation noch nicht erlebt haben, werden Sie froh sein zu erfahren, wie es geht.
Schreiben wir zunächst eine einfache Funktion in C und generieren eine gemeinsam genutzte Bibliothek dieser Datei. Angenommen, der Dateiname lautet 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 }
Kompilieren:
cc -fPIC -shared -o libfun.so function.c
Verwenden Sie die ctypes-Bibliothek (external function interface), um eine C-Funktion aus Python aufzurufen
Die obige Anweisung generiert eine Datei namens libfun .so Shared Library. Sehen wir uns nun an, wie man es in Python verwendet. In Python haben wir eine Bibliothek namens ctypes. Mit dieser Bibliothek können wir C-Funktionen in Python verwenden.
Angenommen, der Dateiname lautet 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)
In diesem Artikel geht es darum, wie man C-Funktionen in Python aufruft. Ich hoffe, dass er Freunden in Not hilfreich sein wird!
Das obige ist der detaillierte Inhalt vonSo rufen Sie eine C-Funktion in Python auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!