Skip to main content
 首页 » 编程设计

python之python 中 "lambda"函数的模糊性

2025年05月04日13think

<分区>

我想制作一个“走”过钢筋的模型。

所以我创建了 8 个函数:

g0 = lambda ct: ct.append((lambda (x,y): (x-1,y))(ct[-1])) 
g1 = lambda ct: ct.append((lambda (x,y): (x-1,y+1))(ct[-1])) 
g2 = lambda ct: ct.append((lambda (x,y): (x,y+1))(ct[-1])) 
g3 = lambda ct: ct.append((lambda (x,y): (x+1,y+1))(ct[-1])) 
g4 = lambda ct: ct.append((lambda (x,y): (x+1,y))(ct[-1])) 
g5 = lambda ct: ct.append((lambda (x,y): (x+1,y-1))(ct[-1])) 
g6 = lambda ct: ct.append((lambda (x,y): (x,y-1))(ct[-1])) 
g7 = lambda ct: ct.append((lambda (x,y): (x-1,y-1))(ct[-1])) 

但是当我尝试应用任何函数时,我得到的是None:

print g0([(50,50)]) 
None 

好吧,让我们尝试更传统的方式:

def g0(ct): 
    ct.append((lambda (x,y): (x-1,y))(ct[-1])) 
    return ct 

这是按预期工作的:

[(50, 50), (49, 50)] 

但是当我尝试的时候

def g0(ct):           
    return ct.append((lambda (x,y): (x-1,y))(ct[-1])) 

结果也是None,为什么?