Python-在循环内创建lambda

我试图在迭代对象列表的循环内创建lambda

lambdas_list = []

for obj in obj_list:

lambdas_list.append(lambda : obj.some_var)

现在,如果我遍历lambda列表并这样称呼它们:

for f in lambdas_list:

print f()

我得到相同的价值。这是最后的价值obj在obj_list,因为那是在列表迭代器的块中的最后一个变量。有什么想法可以很好地重写pythonic)代码以使其正常工作吗?

回答:

使用此行:

lambdas_list.append(lambda obj=obj: obj.some_var)

以上是 Python-在循环内创建lambda 的全部内容, 来源链接: utcz.com/qa/411568.html

回到顶部