On Wed, May 30, 2018 at 1:56 PM Neil Girdhar <mistersh...@gmail.com> wrote:

> On Wed, May 30, 2018 at 1:52 PM Chris Angelico <ros...@gmail.com> wrote:
>
>> On Thu, May 31, 2018 at 1:23 AM, Peter O'Connor
>> <peter.ed.ocon...@gmail.com> wrote:
>> >>  In comparison, I think that := is much simpler.
>> >
>> >
>> > In this case that's true, but a small modification:
>> >
>> >         updates = {
>> >             y: do_something_to(potential_update)
>> >             for x in need_initialization_nodes
>> >             for y in [x, *x.synthetic_inputs()]
>> >             if potential_update is not None
>> >             given potential_update = command.create_potential_update(y)
>> >             }
>> >
>> > Shows the flexibility of this given syntax vs ":="
>>
>> I don't understand what you're showcasing here. With :=, you give a
>> name to something at the exact point that it happens:
>>
>>         updates = {
>>             y: do_something_to(potential_update)
>>             for x in need_initialization_nodes
>>             for y in [x, *x.synthetic_inputs()]
>>             if (potential_update :=
>> command.create_potential_update(y)) is not None
>>             }
>>
>> Personally, I'd use a shorter name for something that's used in such a
>> small scope (same as you use one-letter "x" and "y"). But that's the
>> only way that the 'given' syntax looks at all better - by encouraging
>> you to use yet another line, it conceals some of its immense
>> verbosity. (Note how the name "potential_update" is used twice with
>> :=, once to set and one to retrieve; but with given, it's used three
>> times - retrieve, retrieve, and set.)
>>
>> How does this show that 'given' is more flexible?
>>
>>
> Oh yeah, good point, I forgot that I could use := within the condition
> itself.  It does show that this feature is useful, but not that given is
> more flexible than :=.
>

This example shows additional flexibility:

z = {a: transformed_b
     for b in bs
     given transformed_b = transform(b)
     for a in as_}

There is no nice, equivalent := version as far as I can tell.


>
>
>> ChrisA
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas@python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>> --
>>
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "python-ideas" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/python-ideas/keaR3FudcwQ/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> python-ideas+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
_______________________________________________
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