The right way to 'call' a class attribute inside the same class

Erik python at lucidity.plus.com
Thu Dec 15 19:18:06 EST 2016


On 13/12/16 06:14, Gregory Ewing wrote:
> Ned Batchelder wrote:
>> if a C++ constructor raises an exception, will the corresponding
>> destructor
>> be run, or not? (No, because it never finished making an object of
>> type T.)
>
> So it just leaks any memory that's been allocated by
> the partially-run constructor?

If you're referring to resources in general that a constructor (in the 
C++ sense) allocates - memory, file descriptors, whatever - then it's up 
to the constructor to release those resources before throwing the 
exception should something fail. Destructors are not executed for 
objects that were not constructed.

If the constructor is not written to that standard, then yes - it will 
leak resources.

The memory allocated for the _object_ itself will be released though.

Regards, E.


More information about the Python-list mailing list