为什么 lambda 不改变变量的值

Why lambda does not change a variable's value

我在理解 lambda 时遇到了一些问题。我的观点是将 1 添加到 lambda 中的变量直到某个时候。 例子;

x = 0
t = lambda y: y+1

while True:
    print ("Hello")
    t(x)
    if x==5: break

我以为5次就停止了,没想到lambda只加1一次。而这个 while 循环是无限的。这是为什么?为什么 lambda 在 while 循环完成之前不向该变量加 1,如 x += 1 ?

您需要将 t 的输出分配给 x。你现在做的就像在做:

def t(y):
    return y+1

x = 0
t(x)

而不是

x = t(x)

您需要做的:

x = 0
t = lambda y: y+1

while True:
    print ("Hello")
    x = t(x)
    if x==5: break