Heim  >  Artikel  >  Backend-Entwicklung  >  So rufen Sie eine C-Funktion in Python auf

So rufen Sie eine C-Funktion in Python auf

藏色散人
藏色散人Original
2019-01-22 14:56:563468Durchsuche

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.

So rufen Sie eine C-Funktion in Python auf

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!

Stellungnahme:
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