【发布时间】:2015-11-10 23:34:48
【问题描述】:
假设我在一个循环中有一个函数,它接受多个参数,但实际上只有一个参数在循环的迭代中发生变化。
例子:
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 ...”错误。
【问题讨论】:
-
好吧,你的代码不完整,但我猜在第二种情况下,函数是在
somemodule中定义的,但变量a,b,...不是.由于模块在 Python 中提供范围,因此您应该在somemodule中定义这些变量。如果我弄错了,请您提供 MWE 吗? -
在您的第二种情况下,
a和b分配(读取定义)在哪里?
标签: python loops global-variables local