On Thu, Oct 4, 2018 at 4:12 AM Jonathan Fine <jfine2358@gmail.com> wrote:
Anders Hovmöller suggested
Short form of keyword arguments where foo(=a, =1+bar) Is expanded at compile time to foo(**{'a': a, '1+bar': 1+bar})
Chris Angelico wrote:
That is not guaranteed to work. In another thread it was pointed out that this is merely a CPython implementation detail, NOT a language feature.
Here's a variant of Anders' suggestion. First, here's a dict literal {'a':1, 'b': 2, 'c':3} and here's another way to write an equivalent dict dict(a=1, b=2, c=3)
So how about extending Python so that, for example, {=(1 + bar), } is equivalent to {'1 + bar': 1 + bar, }
The basic idea is Anders's, recast to avoid Chris's problem.
Anders: Are you willing to accept this change, if need be? Chris: Please speak up, if you think this may depend on CPython.
And then you just pass the dictionary as-is? That would be plausible, but I'm not a big fan of the syntax. Feels very clunky and forced. Spun off as a new thread because this isn't really specific to debugging. ChrisA