为什么 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
我在理解 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