[Python-ideas] Inline assignments using "given" clauses

Brendan Barnwell brenbarn at brenbarn.net
Fri May 11 14:13:53 EDT 2018


On 2018-05-11 11:08, Brendan Barnwell wrote:
> . . . and it's true the latter is a bit more verbose in that case for
> little extra benefit.  But when the locally-defined value is used within
> a more complicated expression (like the quadratic formula example), I
> think readability goes down significantly.  To appease Tim, instead of
> using the quadratic formula, though, I will use a more realistic example
> that comes up fairly often for me: wanting to do some kind of
> normalization on a piece of data for a comparison, while keeping the
> unnormalized data for use within the block:
>
> 	if some_condition and (stuff:=
> get_user_input()).lower().strip().replace('-', ''):
>
> versus
>
> 	if some_condition and stuff.lower().strip().replace('-', '') given
> stuff = get_user_input():

	Ironically I weakened my argument by forgetting to finish my expression 
there.  I intended that chain of method calls to be used in a comparison 
to make the surrounding expression more complex.  So revise the above to

  	if some_condition and (stuff := 
get_user_input()).lower().strip().replace('-', '') == existing_value:

versus

	if some_condition and stuff.lower().strip().replace('-', '') == 
existing_value given stuff = get_user_input():

-- 
Brendan Barnwell
"Do not follow where the path may lead.  Go, instead, where there is no 
path, and leave a trail."
    --author unknown


More information about the Python-ideas mailing list