On Wed, Aug 12, 2015 at 11:46:10AM -0400, Joseph Jevnik wrote:
From a language design standpoint I think that having non-constant keys in the unpack map makes a lot of sense.
mydict = {'spam': 1, 'eggs': 2} spam = 'eggs' eggs = 99 {spam: spam} = mydict print(spam, eggs) What gets printed? I can only guess that you want it to print eggs 1 rather than 1 99 but I can't be sure. I am reasonably sure that whatever you pick, it will surprise some people. It will also play havok with CPython's local variable optimization, since the compiler cannot tell what the name of the local will be: def func(): mydict = dict(foo=1, bar=2, baz=3) spam = random.choice(['foo', 'bar', 'baz']) {spam: spam} = mydict # which locals exist at this point? -- Steve