wim*_*wim 10 python scoping locals
>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}
Run Code Online (Sandbox Code Playgroud)
这种行为差异的原因是什么?
Bre*_*arn 14
字典理解和生成器理解创建了它们自己的局部范围.列表推导不是在Python 2.x中,而是在Python 3中.(请注意,您的第一个示例不是字典理解.它只是一个字面上的字典恰好有一个表达式作为键0的值.)