将重复的参数传递给循环函数

时间:2015-08-18 06:52:59

标签: python loops global-variables local

假设我在循环内部有一个函数,它接受几个参数,但实际上只有一个参数从循环迭代变为迭代。

示例:

for i in range(10):
   function(i, a, b, c, d, e)

我是否会通过重复传递参数a,b,c,d,e而失去速度?我清楚地理解了所有可变类型是如何以“类似引用”的方式传递的。什么是更好的方法呢?

我试过这个:

a =
b =
...

def function(i)

for i in range(10):
   function(i)

它似乎有效。

令人沮丧的是,以下似乎不起作用,我在理解为什么不在线解释时并不是很成功:

from somemodule import function 

for i in range(10):
   function(i)

其中函数定义与上面相同。我一直得到一个“全局变量a,b,c ......无法找到”错误。

2 个答案:

答案 0 :(得分:0)

您是否尝试过以这种方式指定变量:

global a
global b
.....

否则,如果这些变量在任何函数中声明,则它们被视为局部变量,并且它的实例只能在声明的函数中使用。如果将其指定为全局,则可以在脚本中的任何位置使用它 这是您遇到的唯一 ERROR 吗?

答案 1 :(得分:0)

名称a,b,c ...必须在somemodule中定义才能生效,然后function会使用这些值。

由于您的代码不完整,我只能猜测..
您应该使用默认参数或functools.partial

他们产生不同的结果,但我认为其中一个符合您的需求。