2012-08-10 16 views
5

का उपयोग करते समय स्वयं का संदर्भ प्राप्त करना मैं पाइथन एप्लिकेशन के निष्पादन को तेज करने की आशा के साथ बूस्ट :: पायथन का उपयोग करके एक पायथन कक्षा को सी ++ में बंद करने की कोशिश कर रहा हूं (कक्षा जिसे मैं सी ++ पर पोर्ट कर रहा हूं आवेदन निष्पादन समय के ~ 30% के लिए जिम्मेदार)।बूस्ट :: पायथन

class PyClass(object): 
    def __init__(self, child): 
     child.set_parent(self) 
     ... 

मैं कैसे एक सी ++ निर्माता में यह दोहराने है:

मूल अजगर वर्ग के init तरह लग रहा है?

अगर मैं एक सी ++ वर्ग है:

class CClass 
{ 
    // to get input args that match the Python class I need 
    CClass(boost::python::object &child) 
    { 
     // but how do I get the boost::python::object self 
     // as I only have *this in C++ ? 
     CClass& c = boost::python::extract<CClass&>(child); 
     c.set_parent(self); 
    } 

    ... 
} 

धन्यवाद, मार्क

उत्तर

3

आप this answer में वर्णित है, boost::python::ptr(this) के माध्यम से this सूचक का उपयोग कर सकते हैं।

संबंधित मुद्दे