python将变量传递给函数参数

时间:2015-05-22 21:26:54

标签: python

我认为这是一个蟒蛇初学者的问题。

我的目标是将变量(idx)传递给作为参数给出的函数。

我试图包装函数调用,将变量作为参数传递,但由于某种原因,结果并不像我预期的那样。

以下是代码:

for idx, path in enumerate(paths):
  def _mf(t):
    return make_frame(t, idx)

  clip2 = VideoClip(_mf, False, 10)

此循环将迭代2个项目。两个剪辑将分别调用make_frame函数。 但第二个参数(idx)将永远是" 1"两个剪辑。我不明白这一点。

任何人都可以帮助我吗?感谢

1 个答案:

答案 0 :(得分:0)

你可以尝试:

def foo(idx):
    return lambda t: make_frame(t, idx)

for idx, path in enumerate(paths):
    clip2 = VideoClip(foo(idx), False, 10)