自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

免費(fèi)開源的Python程序庫(kù)述說

開發(fā) 后端
Python程序庫(kù)的API是基于C語言開發(fā)出來的。與其它腳本語言相對(duì)比,API具有簡(jiǎn)單便捷的有點(diǎn),使開發(fā)人員大大的縮短了開發(fā)時(shí)間。

Python程序庫(kù)是進(jìn)行免費(fè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)作為將來的C++標(biāo)準(zhǔn)附件提交。Boost Python C++庫(kù)是一個(gè)很好的模板庫(kù),它允許你為Python程序庫(kù)用戶封裝任何C++類或者函數(shù)。有了這個(gè)庫(kù),創(chuàng)建一個(gè)由C++代碼模型與Python代碼聯(lián)合組成的系統(tǒng)就較為簡(jiǎn)單了。

如何開始首先,下載并安裝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)。

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

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

  1.   #include <string> 
  2.  
  3.   typedefstd::string string;  
  4.  
  5.   class CmsgBox  
  6.  
  7.   {  
  8.  
  9.   string m_Text;  
  10.  
  11.   public:  
  12.  
  13.   CMsgBox(void);  
  14.  
  15.   virtual ~CMsgBox(void);  
  16.  
  17.   CMsgBox(const string &text):m_Text(text){}  
  18.  
  19.   void Show(){  
  20.  
  21.   MessageBox(NULL, m_Text.c_str(), "Python", MB_OK);  
  22.  
  23.   }  
  24.  
  25.   };  
  26.  
  27.   為了讓Python可以訪問這個(gè)類,我們需要添加下面的代碼:  
  28.  
  29.   #include <boost/python/class_builder.hpp> 
  30.  
  31.   namespace python = boost::python;  
  32.  
  33.   //這里是上面例子中的代碼  
  34.  
  35.   ...  
  36.  
  37.   BOOST_PYTHON_MODULE_INIT(PythonDemo)  
  38.  
  39.   {  
  40.  
  41.   python::module_builder mod("PythonDemo");  
  42.  
  43.   python::class_builder<CMsgBox> msgbox(mod, "CMsgBox");  
  44.  
  45.   msgbox.def(python::constructor<string>());  
  46.  
  47.   msgbox.def(CMsgBox::Show, "Show");  
  48.  
  49.   } 

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

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

責(zé)任編輯:chenqingxiang 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-01-27 17:36:24

C++程序庫(kù)

2013-08-15 13:29:52

Moco程序庫(kù)設(shè)計(jì)

2010-01-14 09:43:26

C++標(biāo)準(zhǔn)程序庫(kù)

2010-01-19 09:39:43

C++標(biāo)準(zhǔn)程序庫(kù)

2010-01-19 09:39:43

C++標(biāo)準(zhǔn)程序庫(kù)

2013-04-22 09:21:43

2010-01-15 14:59:54

C++標(biāo)準(zhǔn)程序庫(kù)

2010-01-19 18:04:02

C++標(biāo)準(zhǔn)程序庫(kù)

2010-03-01 10:30:29

Python應(yīng)用程序

2015-04-29 09:58:48

開源C++

2010-02-22 14:54:47

Python應(yīng)用程序

2010-09-29 14:21:22

2011-04-19 08:59:33

2020-03-31 22:09:01

React應(yīng)用程序庫(kù)

2024-01-22 15:26:27

前端開發(fā)JavaScrip

2014-11-28 11:17:14

開源

2009-12-29 16:12:25

ADO程序員

2024-05-15 07:48:08

.NET開源圖表庫(kù)

2011-11-21 10:09:40

開源技術(shù)數(shù)據(jù)庫(kù)

2025-02-20 09:21:42

.NETMAUI組件庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)