Bill Baxter wrote:
On Mon, May 18, 2009 at 1:14 PM, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
Nick Sabalausky wrote:
"Leandro Lucarella" <llu...@gmail.com> wrote in message
news:20090518141908.gb9...@burns.springfield.home...
bearophile, el 18 de mayo a las 04:33 me escribiste:
Andrei, I agree that "with" is dangerous when it shadows outer names
(Python designers have not added a "with" because of this).
They did, but with different semantics =)
It's used for RAII (I guess you already know that, but maybe other people
don't).

You mean like C#'s "using"?
What a God awful feature. Honestly, "what were they sinking about?" People
who explained that C# is cool - please explain this one.

Looks like

using(Foo x = new Foo()) {
     // do stuff
}

It's basically equiv of

{
    auto x = new Foo();
    scope(exit) foo.Dispose;
    // do stuff
}

So it saves a little typing but is capable of less.  scope(exit) is way cooler.
Python has a similar feature to C#'s using.  In Python it's called
"with".  http://effbot.org/zone/python-with-statement.htm

That's not an "equiv of". It's "completely missing the point of". Each "using" costs one new scope and one level of indentation which makes it non-scalable. Indentation is *expensive*. I think the C# folks missed the class when try/catch/finally showed with extensive examples just how expensive extra indentation is.

Andrei

Reply via email to