小编Mei*_*eir的帖子

在循环内创建lambda

可能重复:
(lambda)函数闭包在Python中捕获了什么?
lambda函数不关闭Python中的参数?

我试图在循环中创建lambdas迭代一个对象列表:

lambdas_list = []
for obj in obj_list:
   lambdas_list.append(lambda : obj.some_var)
Run Code Online (Sandbox Code Playgroud)

现在,如果我遍历lambdas列表并像这样调用它们:

for f in lambdas_list:
    print f()
Run Code Online (Sandbox Code Playgroud)

我得到了相同的价值.这是最后的价值objobj_list,因为那是在列表迭代器的块中的最后一个变量.任何想法都能很好地(pythonic)重写代码以使其工作?

python

28
推荐指数
3
解决办法
1万
查看次数

标签 统计

python ×1