>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
什么是这种差异的行为的原因是什么?
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
什么是这种差异的行为的原因是什么?
快译通内涵和发电机内涵打造自己的本地范围。 列表解析并不在Python 2.x中,但在Python 3做(请注意,你的第一个例子是不是一个字典理解,这只是一个文字字典,恰好有一个表达式作为关键值为0。)