[Python-ideas] A PEP on introducing variables on 'if' and 'while'
steve at pearwood.info
Sat Jun 9 19:50:30 EDT 2018
On Sat, Jun 09, 2018 at 09:17:37AM -0400, Juancarlo Añez wrote:
> > Do you mean the context manager semantics of with statements? As in,
> > calling the __enter__ and __exit__ method?
> No. Just the scope of the variables introduced, which is different in `with
> as` and `except as`.
They aren't. They are the same scope: both `with` and `except` bind to a
The only difference is that the `except` block implicitly unbinds the
variable when the block ends.
py> err = "something"
... None + 1
... except TypeError as err:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'err' is not defined
> > Please make sure you are very familiar with PEP 572 before you do, and
> > expect to have your PEP compared to it.
> My intention would be to make the to proposals orthogonal, if possible, so
> both/any can be accepted or rejected in their own timeline.
> I'm certain that both can live together.
while (condition := expression) as flag:
Accepting "while/if as name" would remove much (but not all) of the
motivation for assignment expressions, while accepting assignment
expressions would make a dedicated while/if as name syntax unnecessary.
Like it or not, I expect that they will be seen as competing PEPs, not
More information about the Python-ideas