以下 Python 程序:
d = {}
for x in range(3):
d[x] = lambda: x
print(d[0](), d[1](), d[2]())
输出:
2 2 2
x
受表达式中的引用约束。lambda
在for
语句之后,x
被绑定到 2,它解释了输出。
我想x
改为受值约束,以获得以下输出:
0 1 2
我怎样才能做到这一点?
以下 Python 程序:
d = {}
for x in range(3):
d[x] = lambda: x
print(d[0](), d[1](), d[2]())
输出:
2 2 2
x
受表达式中的引用约束。lambda
在for
语句之后,x
被绑定到 2,它解释了输出。
我想x
改为受值约束,以获得以下输出:
0 1 2
我怎样才能做到这一点?