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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
把Python嵌入C++中類的成員屬性的內(nèi)容介紹

在C++中類的相關成員能使用關鍵字去聲明為不一樣的屬性。但是在Python中則會依靠類的相關屬性的命名的方式。以下的文章就是介紹把Python嵌入C++中類的成員屬性的相關實際操作方案的介紹。

把Python嵌入C++中類的成員屬性

在C++中類的相關成員能使用關鍵字去聲明為不一樣的屬性。但是在Python中則會依靠類的相關屬性的命名的方式。使用Boost.Python可以將其C++中類成員的屬性傳遞給Python。如下所示代碼使用Boost.Python來處理類成員的屬性。將BOOST_PYTHON_MODULE中的代碼改為如下所示。

 
 
 
  1. BOOST_PYTHON_MODULE(Message)  
  2. {  
  3. class_("Message", init())  
  4. .def("set", &Message::set)  
  5. .def("get", &Message::get)  
  6. .def_readwrite("msg", &Message::msg);  
  7. ;  
  8. }   

此處將Message類中的成員msg設置為可讀寫,還可以使用“.def_readonly”將其設置為只讀屬性。對于類中的私有成員還可以使用“.add_property”將其操作函數(shù)設置為Python類中的屬性。如下代碼使用“.add_property”對私有成員進行操作。

 
 
 
  1. BOOST_PYTHON_MODULE(Message)  
  2. {  
  3. class_("Message",init())  
  4. .add_property("msg",&Message::get,&Message::set);  
  5. }  

以下代碼在Python中使用編譯好的Message模塊。

 
 
 
  1. >>> import Message  
  2. >>> s = Message.Message('hi')  
  3. >>> s.msg  
  4. 'hi'  
  5. >>> s.msg = 'boot' 
  6. >>> s.msg  
  7. 'boot'  

4.類的繼承

C++中類的繼承關系也可以通過Boost.Python反映到Python模塊中。以下代碼將父類和子類分別導入到Python模塊中。以下就是對Python嵌入C++中類的成員屬性

 
 
 
  1. #include  
  2. #include  
  3. #include  
  4. using namespace boost::python;  
  5. #pragma comment(lib, "boost_python.lib")  
  6. class Message  
  7. {  
  8. public:  
  9. std::string msg;  
  10. Message(std::string m)  
  11. {  
  12. mmsg = m;  
  13. }  
  14. void set(std::string m)  
  15. {  
  16. mmsg = m;  
  17. }  
  18. std::string get()  
  19. {  
  20. return msg;  
  21. }  
  22. };  
  23. class Msg:public Message  
  24. {  
  25. public:  
  26. int count;  
  27. Msg(std::string m):Message(m)  
  28. {  
  29. }  
  30. void setcount(int n)  
  31. {  
  32. count = n;  
  33. }  
  34. int getcount()  
  35. {  
  36. return count;  
  37. }  
  38. };  
  39. BOOST_PYTHON_MODULE(Message)  
  40. {  
  41. class_("Message",init())  
  42. .add_property("msg",&Message::get,&Message::set);  
  43. class_ >("Msg",init())  
  44. .def("setcount", &Msg::setcount)  
  45. .def("getcount", &Msg::getcount);  

 以上就是對Python嵌入C++中類的成員屬性相關的內(nèi)容的介紹,望你會有所收獲。


文章名稱:把Python嵌入C++中類的成員屬性的內(nèi)容介紹
網(wǎng)頁路徑:http://www.dlmjj.cn/article/cdjjjeh.html