在Python中以编程方式传递不确定数量的参数
我想要一个简单的方法,可以把一个函数和它的参数放进去,等到以后再执行,这样就可以在它外面包裹一层。
在这个例子中,我想用它来做性能测试,比如:
def timefunc(fn, *args):
start = time.clock()
fn(args)
stop = time.clock()
return stop - start
我该怎么传递参数,如果参数的数量不确定呢?我怎么知道参数的数量?一旦我知道了参数的数量,我又该怎么调用这个函数呢?
2 个回答
2
MatrixFrog的回答是正确的,不过我再补充一下。要找出参数的数量,只需要调用 len
,因为 args
是一个元组:
import time
def timefunc(fn, *args):
start = time.clock()
print len(args), type(args)
fn(*args)
stop = time.clock()
return stop - start
def myfoo(a, b):
c = a + b
return c
timefunc(myfoo, 5, 6)
在timefunc里面的打印语句会输出:
2 <type 'tuple'>
由于 args
是一个元组,你可以像访问其他元组一样访问它。
8
只需要这样调用这个函数:
fn(*args)