I completely understand your perspective, and agree with most of it. It
doesn't add new expressiveness, it adds a bit of polish (and I think
completeness) to the relatively new concept of 'with' statements.

Is this so intuitive that we don't actually have to teach it?
Is it such a natural extension to 'with', that it would immediately be
weird to find it missing in the future?

If the answer to either of those questions is 'no', then I absolutely
retract my idea.



On Tue, Jan 22, 2019 at 3:22 PM Steven D'Aprano <st...@pearwood.info> wrote:

> On Tue, Jan 22, 2019 at 01:11:10PM -0700, Paul Ferrell wrote:
>
> [...]
> > I would like to propose that the syntax for 'with' blocks
> > be changed such that they can be accompanied by 'except', 'finally',
> > and/or 'else' blocks as per a standard 'try' block.
>
> What benefit does this give apart from saving one line and one indent?
> If either is in short supply, the code probably needs refactoring, not
> new syntax.
>
> The beauty of the current syntax is that try...except and with blocks
> are fully independent, composable blocks which can be learned and
> reasoned about seperately. You're proposing to add a new special-case
> syntax:
>
>     while ...
>     except ...
>
> that adds a new block structure that has to be implemented, documented,
> tested, maintained, taught and learned. It will inevitably lead to
> questions on mailing lists, IRC and Stackoverflow asking what is the
> difference between a separate try...with...except and a with...except,
> and when to choose one or the other.
>
> And of course then there will be the inevitable requests that we
> generalise it to other blocks:
>
>     for ...
>     except ...
>
>     while ...
>     except ...
>
> If this will allow us to write more expressive code, or do things we
> couldn't easily do before, then it might be worthwhile to add this
> additional complexity.
>
> But if all it does is save one line and one indent, then I believe it is
> redundant and I would be against it.
>
>
> --
> Steve
> _______________________________________________
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
Paul Ferrell
pfl...@gmail.com
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to