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

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

新聞中心

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

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

把Python嵌入C++中類(lèi)的成員屬性

在C++中類(lèi)的相關(guān)成員能使用關(guān)鍵字去聲明為不一樣的屬性。但是在Python中則會(huì)依靠類(lèi)的相關(guān)屬性的命名的方式。使用Boost.Python可以將其C++中類(lèi)成員的屬性傳遞給Python。如下所示代碼使用Boost.Python來(lái)處理類(lèi)成員的屬性。將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類(lèi)中的成員msg設(shè)置為可讀寫(xiě),還可以使用“.def_readonly”將其設(shè)置為只讀屬性。對(duì)于類(lèi)中的私有成員還可以使用“.add_property”將其操作函數(shù)設(shè)置為Python類(lèi)中的屬性。如下代碼使用“.add_property”對(duì)私有成員進(jìn)行操作。

 
 
 
  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.類(lèi)的繼承

C++中類(lèi)的繼承關(guān)系也可以通過(guò)Boost.Python反映到Python模塊中。以下代碼將父類(lèi)和子類(lèi)分別導(dǎo)入到Python模塊中。以下就是對(duì)Python嵌入C++中類(lèi)的成員屬性

 
 
 
  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);  

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


新聞名稱(chēng):把Python嵌入C++中類(lèi)的成員屬性的內(nèi)容介紹
網(wǎng)站路徑:http://www.5511xx.com/article/cdjjjeh.html