我在 Python 2.7.8(Anaconda 发行版)上运行,此代码失败。这看起来像是 Python 实现中的一个错误,但我错过了什么吗?
class C:
x = {2 : 1}
y = {w for w in x if x[w]==1}
运行此代码会给出以下错误消息:
NameError:未定义全局名称“x”
错误消息对我来说似乎也是错误的。
请注意,以下两段非常相似的代码确实可以正常工作:
# this works fine:
class C:
x = {2 : 1}
y = [w for w in x if x[w]==1]
# this works fine too:
x = {2 : 1}
y = {w for w in x if x[w]==1}