黑馬雲課堂8天深入理解Python影片資料

巴扎黑
發布: 2017-08-25 14:53:19
原創
2301 人瀏覽過

Python, 是一種物件導向、解釋型電腦程式設計語言,由Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。 Python是純粹的自由軟體,原始碼和解釋器CPython遵循 GPL(GNU General Public License)協定 。 Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮排。 Python具有豐富且強大的函式庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是C/C++)很輕鬆地聯結在一起。 《黑馬雲課堂8天深入理解Python影片教學》帶你深入理解Python語言。

黑馬雲課堂8天深入理解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  #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;  
}  
 

void TestLib::display(int a) {  

   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

import ctypes  ###so = ctypes.cdll.LoadLibrary   ###lib = so("./ libpycallclass.so")   ###print 'display()'  lib.display()  ###print 'display(100)'  lib.display_int(100) #########老師講課輕鬆詼諧,學生講課學起來無壓力。由淺入深,深入淺出,輕鬆歡快是這個老師的整體映像。 ###

以上是黑馬雲課堂8天深入理解Python影片資料的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板