Python, 是一種物件導向、解釋型電腦程式設計語言,由Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。 Python是純粹的自由軟體,原始碼和解釋器CPython遵循 GPL(GNU General Public License)協定 。 Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮排。 Python具有豐富且強大的函式庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是C/C++)很輕鬆地聯結在一起。 《黑馬雲課堂8天深入理解Python影片教學》帶你深入理解Python語言。
影片播放位址://m.sbmmt.com/course/556.html
本影片的困難點在於對C/C++的呼叫:
1、Python呼叫C動態連結函式庫
Python呼叫C函式庫較簡單,不經過任何封裝就包裝成so,再使用python的ctypes呼叫即可。
(1)C語言檔案:pycall.c
/***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include
int foo(int a , int b)
{
printf("you input %d and %d\n", a, b);
return a+b;
}
(2)gcc編譯產生動態函式庫libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c。使用g++編譯產生C動態函式庫的程式碼中的函式或方法時,需要使用extern "C"來進行編譯。
(3)Python呼叫動態函式庫的檔案:pycall.py
import ctypes
ll = ctypes.cdll.LoadLibrary
lib = ll("./libpycall.so")
lib.foo(1, 3)
print '***finish***'
(4)執行結果:
2、Python呼叫C++(類別)動態連結函式庫
需要extern "C"來輔助,也就是說還是只能呼叫C函數,不能直接呼叫方法,但是能解析C++方法。不是用extern "C",建構後的動態連結函式庫沒有這些函數的符號表。
(1)C++類別檔案:pycallclass.cpp
#include
using namespace std;
#
class TestLib
#{
#44class public:
void display(); ;endl;
}
cout TestLib obj;
void display() {
obj.display() obj.display(2 );
}
#(2)g++編譯產生動態函式庫libpycall.so:g++ -o libpycallclass.so -shared -fPIC pycallclass.cpp。
(3)Python呼叫動態函式庫的檔案:pycallclass.py
以上是黑馬雲課堂8天深入理解Python影片資料的詳細內容。更多資訊請關注PHP中文網其他相關文章!