编程语言
首页 > 编程语言> > Python在词典理解中的范围

Python在词典理解中的范围

作者:互联网

>>> x = 'foo'
>>> {0: locals().get('x')}
{0: 'foo'}
>>> {0: locals().get('x' + spam) for spam in ['']}
{0: None}

这种行为差异的原因是什么?

解决方法:

字典理解和生成器理解创建了它们自己的局部范围.列表推导不是在Python 2.x中,而是在Python 3中.(请注意,您的第一个示例不是字典理解.它只是一个字面上的字典恰好有一个表达式作为键0的值.)

标签:scoping,python,locals
来源: https://codeday.me/bug/20191007/1868489.html