Moore, Paul wrote:
Paul Moore <lists@morpheus.demon.co.uk> writes:
As far as the acquire/release case is concerned, I think that there is definitely a strong case for syntactic support for this. The equivalent idiom in C++ is "resource acquisition is initialisation" which, while not having syntax support, does rely on the existence of deterministic destructors, and on the ability to introduce a new scope at will. Python has neither of these, and the try...finally construct is verbose enough to make something better worth having.
In trying to draw a parallel between "with" and the C++ RAII idiom, I hit a funny, best illustrated by an example:
class autoclose(file): __exit__ = close
with f = autoclose("blah.txt", "r"): # Let's get sneaky g = f # Main code here
# File now gets closed with g:
I haven't found a way to make assignments optional (in recent experiments). Is this possible with Python's Parser? holger