该
client变量是在外部范围中定义的,因此,在
lambda运行该变量时,它将始终设置为列表中的最后一个客户端。
为了获得预期的结果,可以给lambda一个带有默认值的参数:
passIf = lambda client=client: client.returnpre(CMD2) == 0
由于默认值是在定义lambda时评估的,因此其值将保持正确。
另一种方法是在函数内部创建lambda:
def createLambda(client): return lambda: client.returnpre(CMD2) == 0#...passIf = createLambda(client)
这里拉姆达指
client在可变
createLambda的功能,其具有正确的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)