[PyKDE] ANN: PyQt v3.14, SIP v4.2, QScintilla v1.5 Released
Paul F. Kunz
Paul_Kunz at slac.stanford.edu
Sat Mar 12 07:19:59 GMT 2005
>>>>> On Fri, 11 Mar 2005 19:11:56 +0000, Phil Thompson <phil at riverbankcomputing.co.uk> said:
> On Friday 11 March 2005 6:08 pm, Paul F. Kunz wrote:
>> I ahve the following Python class defined...
>> class Linear ( FunctionBase ) : def __init__ ( self, other = None )
>> : if other : FunctionBase.__init__( self, other ) print "copy"
>> self.initialize () else: FunctionBase.__init__( self ) print
>> "default" self.initialize ()
>> def clone ( self ) : print "clone" return Linear ( self )
>> with some member functions not shown. The class FunctionBase is a
>> C++ abstract base class interfaced via FunctionBase.sip It appears
>> that after clone() calls the copy constructor (speaking in C++
>> terms), the C++ object is deleted.
> Which C++ object? The original, or the clone?
It appears to be *this in the copy constructor.
>> How do I prevent that? Or am I trying to clone the function in an
>> in correct way (I know C++ better than Python)?
> Clone the function? I assume you mean clone the instance.
Clone the instance.
> There is nothing obviously wrong with the Python. You can try
> building your module with tracing enabled (sip -r) to see exactly
> when the C++ dtors are being called.
Ok, good tip to trace what is happening. I wouldn't get a chance
to try it until Sunday. I'm traveling today.
More information about the PyQt