gpt4 book ai didi

Python Lambdas 和变量绑定(bind)

转载 作者:太空狗 更新时间:2023-10-29 22:14:23 25 4
gpt4 key购买 nike

<分区>

我一直在为自动构建开发一个基本的测试框架。下面的代码片段代表了使用不同程序对两台机器之间的通信进行的简单测试。在我实际进行任何测试之前,我想完全定义它们——所以下面的这个测试在所有测试都被声明之后才会真正运行。这段代码只是一个测试声明。

remoteTests = []
for client in clients:
t = Test(
name = 'Test ' + str(host) + ' => ' + str(client),
cmds = [
host.start(CMD1),
client.start(CMD2),

host.wait(5),

host.stop(CMD1),
client.stop(CMD2),
],
passIf = lambda : client.returncode(CMD2) == 0
)
remoteTests.append(t)

总之,测试运行后,它会运行'passIf'定义的函数。因为我想为多个客户端运行此测试,所以我正在迭代它们并为每个客户端定义一个测试 - 没什么大不了的。但是,在第一个客户端上运行测试后,“passIf”会在客户端列表中的最后一个上进行评估,而不是在 lambda 声明时的“客户端”。

那么我的问题是:python 何时在 lambda 中绑定(bind)变量引用?我认为如果使用 lambda 外部的变量是不合法的,解释器将不知道我在说什么。相反,它默默地绑定(bind)到最后一个“客户端”的实例。

另外,有没有办法按照我的预期强制执行分辨率?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com