<br><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">For calling, we can use <a href="https://docs.python.org/3/library/functions.html#locals" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\x3dhttps%3A%2F%2Fdocs.python.org%2F3%2Flibrary%2Ffunctions.html%23locals\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNF12rBT18x5Gn1MtE7TaPqhGdKMtw';return true;" onclick="this.href='https://www.google.com/url?q\x3dhttps%3A%2F%2Fdocs.python.org%2F3%2Flibrary%2Ffunctions.html%23locals\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNF12rBT18x5Gn1MtE7TaPqhGdKMtw';return true;">https://docs.python.org/3/<wbr>library/functions.html#locals</a>
<br>
<br>      >>> lcls = locals()
<br>
<br>      >>> a = 'apple'
<br>      >>> b = 'banana'
<br>      >>> c = 'cherry'
<br>
<br>      >>> dict((k, lcls[k]) for k in ('a', 'b', 'c'))
<br>      {'b': 'banana', 'c': 'cherry', 'a': 'apple'}
<br>
<br>So in his example
<br>
<br>       foo(a=a, b=b, c=c, d=3, e=e)
<br>
<br>one could instead write
<br>
<br>      foo(d=3, **helper(locals(), ('a', 'b', 'c', 'e')))
<br>
<br>or perhaps better
<br>
<br>    helper(locals(), 'a', 'b', 'c', 'e')(foo, d=3)
<br>
<br>where the helper() picks out items from the locals(). And in the
<br>second form, does the right thing with them.
<br></blockquote><div><br></div><div>Sure. This was the argument against f-strings too. </div><div><br></div><div>In any case I'm not trying to solve a problem of how to extract things from the local namespace anymore than "foo(a, b)" is. I'm trying to minimize the advantage positional arguments have over keyword arguments in brevity. If that makes sense?</div>