您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python Lambda和变量绑定

Python Lambda和变量绑定

client变量是在外部范围中定义的,因此,在lambda运行该变量时,它将始终设置为列表中的最后一个客户端。

为了获得预期的结果,可以给lambda一个带有认值的参数:

passIf = lambda client=client: client.returncode(CMD2) == 0

由于认值是在定义lambda时评估的,因此其值将保持正确。

另一种方法是在函数内部创建lambda:

def createLambda(client):
    return lambda: client.returncode(CMD2) == 0
#...
passIf = createLambda(client)

这里拉姆达指client在可变createLambda功能,其具有正确的值。

python 2022/1/1 18:38:00 有229人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶