[Python-ideas] Modern language design survey for "assign and compare" statements

Juancarlo Añez apalala at gmail.com
Sun May 20 20:55:20 EDT 2018

> > print(child_pid)  # child_pid is undefined
> Why on earth would it be undefined?

Indeed, users would expect the new uses of "as" to behave as the previous
ones. The problem is that "with"  and "except" do things differently:

In [*1*]: *import* *os*

In [*2*]: *with* open(os.path.expanduser('~/tmp/xx')) *as* f:

   ...:     *pass*


In [*3*]: print(f)

<_io.TextIOWrapper name='/Users/apalala/tmp/xx' mode='r' encoding='UTF-8'>

In [*4*]: *try*:

   ...:     print('ok')

   ...:     *raise* *Exception*()

   ...: *except* *Exception* *as* e:

   ...:     *pass*


In [*5*]: print(e)


NameError                                 Traceback (most recent call last)

<ipython-input-5-bb2ea196f768> in <module>()

----> 1 print(e)

NameError: name 'e' is not defined

> Anyway, if you want to propose an alternative to PEP 572, you ought to
> write your own competing PEP.

I don't take that as a challenge. It would be good to have different, maybe
somewhat competing PEPs. It's been done before.

Juancarlo *Añez*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180520/667ff70e/attachment-0001.html>

More information about the Python-ideas mailing list