日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
免費(fèi)開(kāi)源的Python程序庫(kù)述說(shuō)

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

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

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

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

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

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

 
 
 
  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可以訪問(wèn)這個(gè)類(lèi),我們需要添加下面的代碼:
  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.   }

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

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


新聞標(biāo)題:免費(fèi)開(kāi)源的Python程序庫(kù)述說(shuō)
文章起源:http://www.5511xx.com/article/dppsphs.html