我想给一个lambda的作用域分配一个变量,这个lambda被多次调用。每次都有一个新的变量实例。我该怎么做?
f = lambda x: x + var.x - var.y
# Code needed here to prepare f with a new var
result = f(10)
在本例中,它是var,我希望在每次调用时都替换它,而不将其作为第二个参数。
不要使用lambda,使用常规函数,你不应该觉得有必要尽可能使用lambda。
一般来说,如果lambda足够复杂,以至于您必须询问如何扭曲它来完成任务,那么只需使用常规的"def"函数即可。它将使代码更可读、更可维护。
@我同意。但是lambda或者正则函数,我不确定OP是如何完成他所要求的。在不使用参数的情况下,如何更改函数范围内的某些内容?
如果这有帮助,可以用常规函数替换lambda。我只需要以某种方式操作函数局部变量/闭包。
如何在python中修改本地名称空间或如何动态修改函数的本地名称空间的可能副本?@JonathonReinhart有几种方法,但在那些链接中看不到干净的方法。
@正在引用命名空间的Jamyak。这真的适用于函数范围的变量吗?
@JonathonReinhart是的,另外Op规定他不能在lambda定义中添加另一个参数,因此没有其他方法
@查米拉克,对。整个事情开始显得荒谬起来。
lambda是在外部定义的,超出了我的控制范围,但我想为lambda创建者提供一个范围。这样做更有意义吗&#x