日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
免費開源的Python程序庫述說

Python程序庫是進行免費開源的,可以移植到多種操作系統(tǒng),如果不依賴指定的操作系統(tǒng)的功能,Python程序可以在不同的操作平臺上運行操作,這也是許多程序員青睞它的優(yōu)點之一。

Boost C++庫集合提供了線程、靈活指針、運算規(guī)則、Python以及更多內(nèi)容的庫。Boost中的許多庫已經(jīng)作為將來的C++標準附件提交。Boost Python C++庫是一個很好的模板庫,它允許你為Python程序庫用戶封裝任何C++類或者函數(shù)。有了這個庫,創(chuàng)建一個由C++代碼模型與Python代碼聯(lián)合組成的系統(tǒng)就較為簡單了。

如何開始首先,下載并安裝Boost。盡管Boost的大多數(shù)內(nèi)容在頭文件之中,Python庫還是必須編譯。Boost支持大多數(shù)目前市面上流行的編譯器,包括Visual C++ 6和7。Boost使用一個叫著JAM的構建系統(tǒng)(build system不要忘了下載JAM庫)。對每一種編譯器,都需要一步一步的設置構建指示(build instruction)。

如果你按照這些指示來做,那么建立過程就應該不會有問題。你還需要下載并安裝Python。如果你使用的是Windows操作系統(tǒng),那么我強烈建議你選用ActiveState版的Python。建立Boost之后,你還需要把Boost的目錄添加到你的include路徑上,并把靜態(tài)庫以及動態(tài)庫添加到你的項目中去

編寫代碼在Python中,擴展是作為DLL或者共享庫實現(xiàn)的,所以你需要創(chuàng)建DLL項目。在我們的例子項目中,我們所創(chuàng)建的Python擴展將會產(chǎn)生一個消息框,該消息框的文本內(nèi)容可以任意改變。

這個例子顯然是沒有多少實用價值,但是它會幫助你理解本文內(nèi)容要點。在VC中,首先創(chuàng)建一個簡單的DLL項目,然后,向這個項目添加一個叫著 CMsgBox的類。給這個類添加一個新的構造函數(shù),構造函數(shù)的參數(shù)為一個標準字符串。然后,在這個類中添加一個叫著Show的方法,這個方法沒有參數(shù),其返回值為void型?,F(xiàn)在,你得到的代碼應該如下所示:

 
 
 
  1.   #include 
  2.   typedefstd::string string;
  3.   class CmsgBox
  4.   {
  5.   string m_Text;
  6.   public:
  7.   CMsgBox(void);
  8.   virtual ~CMsgBox(void);
  9.   CMsgBox(const string &text):m_Text(text){}
  10.   void Show(){
  11.   MessageBox(NULL, m_Text.c_str(), "Python", MB_OK);
  12.   }
  13.   };
  14.   為了讓Python可以訪問這個類,我們需要添加下面的代碼:
  15.   #include /python/class_builder.hpp>
  16.   namespace python = boost::python;
  17.   //這里是上面例子中的代碼
  18.   ...
  19.   BOOST_PYTHON_MODULE_INIT(PythonDemo)
  20.   {
  21.   python::module_builder mod("PythonDemo");
  22.   python::class_builder msgbox(mod, "CMsgBox");
  23.   msgbox.def(python::constructor());
  24.   msgbox.def(CMsgBox::Show, "Show");
  25.   }

這就是一個可以運行的擴展模塊,這里的重點就是BOOST_PYTHON_MODULE_INIT宏。這個宏處理了模塊初始化,并向Python提供對類、構造函數(shù)以及方法的訪問。注意:DLL的名字和模塊名必須相同。在建立了這個DLL之后,把它拷貝到你的Python安裝目錄下的DLL目錄。下面是如何在Python下使用這個擴展。

上面的代碼看起來好像不太整齊,但是你可以得到其它額外的收獲。你可以在Python程序庫中子類化(subclass)這個CmsgBox類。(如果你對Python不熟,那么你一般不能在Python中子類化擴展類。)


分享文章:免費開源的Python程序庫述說
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/dppsphs.html