成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

免費開源的Python程序庫述說

開發 后端
Python程序庫的API是基于C語言開發出來的。與其它腳本語言相對比,API具有簡單便捷的有點,使開發人員大大的縮短了開發時間。

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

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

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

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

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

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

  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可以訪問這個類,我們需要添加下面的代碼:  
  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.   } 

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

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

責任編輯:chenqingxiang 來源: 互聯網
相關推薦

2010-01-27 17:36:24

C++程序庫

2013-08-15 13:29:52

Moco程序庫設計

2010-01-14 09:43:26

C++標準程序庫

2010-01-19 09:39:43

C++標準程序庫

2010-01-19 09:39:43

C++標準程序庫

2013-04-22 09:21:43

2010-03-01 10:30:29

Python應用程序

2010-01-15 14:59:54

C++標準程序庫

2010-01-19 18:04:02

C++標準程序庫

2010-02-22 14:54:47

Python應用程序

2015-04-29 09:58:48

開源C++

2010-09-29 14:21:22

2011-04-19 08:59:33

2020-03-31 22:09:01

React應用程序

2009-12-29 16:12:25

ADO程序員

2014-11-28 11:17:14

開源

2024-01-22 15:26:27

前端開發JavaScrip

2024-05-15 07:48:08

.NET開源圖表庫

2011-11-21 10:09:40

開源技術數據庫

2025-02-20 09:21:42

.NETMAUI組件庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品一区二区三区网站观看 | 久久99久久99精品免视看婷婷 | 精品www| 国产欧美日韩一区二区三区在线 | 黄a网| www.精品国产| 国产一区二区久久 | 在线观看视频一区二区三区 | 日日日日操| 日韩成人免费av | 人人鲁人人莫人人爱精品 | 久久久久久亚洲 | 久久精品视频在线观看 | 亚洲美女一区二区三区 | 免费国产一区二区 | 一级免费毛片 | 日韩一三区 | 欧美一级大黄 | 在线观看中文字幕亚洲 | 日韩精品极品视频在线观看免费 | 日韩中文一区二区三区 | 一级在线观看 | 国产欧美精品区一区二区三区 | 偷牌自拍| 激情一区| 亚洲一区二区欧美 | 欧美色图另类 | 涩涩视频网 | 久久久久久久电影 | 欧美视频网| 网黄在线 | 91成人在线视频 | 亚洲综合视频 | 亚洲精品欧美精品 | 天天夜天天操 | 精品一区二区三区免费毛片 | 国产精品免费在线 | 日韩精品一区二区三区在线观看 | 亚洲一区中文字幕在线观看 | 男女网站在线观看 | 欧美一区二区三区久久精品视 |