av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

把Python嵌入C++中類的成員屬性的內(nèi)容介紹

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

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

在C++中類的相關(guān)成員能使用關(guān)鍵字去聲明為不一樣的屬性。但是在Python中則會依靠類的相關(guān)屬性的命名的方式。使用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設(shè)置為可讀寫,還可以使用“.def_readonly”將其設(shè)置為只讀屬性。對于類中的私有成員還可以使用“.add_property”將其操作函數(shù)設(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++中類的繼承關(guān)系也可以通過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++中類的成員屬性相關(guān)的內(nèi)容的介紹,望你會有所收獲。


當前名稱:把Python嵌入C++中類的成員屬性的內(nèi)容介紹
分享網(wǎng)址:http://uogjgqi.cn/article/cdjjjeh.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流