为什么lambda不会改变变量的值

GLH*_*LHF 0 python lambda python-3.5

我有一些问题需要理解lambda.我的观点是1在lambda中添加一个变量直到某个点.例;

x = 0
t = lambda y: y+1

while True:
    print ("Hello")
    t(x)
    if x==5: break
Run Code Online (Sandbox Code Playgroud)

我以为它会在5次后停止,但我意识到lambda只加1次.而这个while循环是无限的.这是为什么?为什么lambda在循环完成之前不会向该变量添加1 x += 1

olo*_*fom 10

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

def t(y):
    return y+1

x = 0
t(x)
Run Code Online (Sandbox Code Playgroud)

代替

x = t(x)
Run Code Online (Sandbox Code Playgroud)

你需要这样做:

x = 0
t = lambda y: y+1

while True:
    print ("Hello")
    x = t(x)
    if x==5: break
Run Code Online (Sandbox Code Playgroud)