[Python-Dev] (name := expression) doesn't fit the narrative of PEP 20

Steve Holden steve at holdenweb.com
Thu Apr 26 06:20:31 EDT 2018


On Thu, Apr 26, 2018 at 8:56 AM, Steven D'Aprano <steve at pearwood.info>
wrote:

> On Thu, Apr 26, 2018 at 03:31:13AM -0400, Terry Reedy wrote:
> > On 4/25/2018 8:20 PM, Chris Angelico wrote:
> > >On Thu, Apr 26, 2018 at 10:11 AM, Yury Selivanov
> > ><yselivanov.ml at gmail.com> wrote:
> > >>Just yesterday this snippet was used on python-dev to show how great
> the
> > >>new syntax is:
> > >>
> > >>           my_func(arg, buffer=(buf := [None]*get_size()),
> size=len(buf))
> >
> > What strikes me as awful about this example is that len(buf) is
> > get_size(), so the wrong value is being named and saved.
> > 'size=len(buf)' is, in a sense, backwards.
>
> Terry is absolutely right, and I'm to blame for that atrocity. Mea
> culpa.
>
> ​Perhaps a better spelling would be

    my_func(arg, buffer=[None]*(buflen := get_size()), size=buflen)

​[...]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180426/5cc63ec3/attachment.html>


More information about the Python-Dev mailing list