Searching equivalent to C++ RAII or deterministic destructors
__peter__ at web.de
Thu Jul 2 12:46:27 CEST 2009
Ulrich Eckhardt wrote:
> Bearophile wrote:
>> Ulrich Eckhardt:
>>> a way to automatically release the resource, something
>>> which I would do in the destructor in C++.
>> Is this helpful?
> Yes, it aims in the same direction. However, I'm not sure this applies to
> my case. The point is that the resource handle is not just used locally in
> a restricted scope but it is allocated and stored. The 'with' is something
> that makes sense in the context of mutex locking, where you have a
> well-defined critical section.
Isn't that exactly what RAII does?
> What I need is something similar to open(),
> which returs a file. When the last reference to that object goes out of
> scope, the underlying file object is closed.
You can go ahead and implement a __del__() method. It will often work in
CPython, but you get no guarantees, especially when you have reference
cycles and with other Python implementations that don't use refcounting.
More information about the Python-list