以编程方式在Python中传递未知数量的参数

时间:2009-12-04 03:44:45

标签: python

我想要一个简单的方法来插入一个稍后要执行的函数和参数,这样我就可以有一种包装器。

在这种情况下,我想用它来进行基准测试,例如:

def timefunc(fn, *args):
   start = time.clock()
   fn(args)
   stop = time.clock()
   return stop - start

如何传递参数数量未知的参数?如何找到参数个数?一旦我知道了参数的数量,我怎么能调用这个函数?

2 个答案:

答案 0 :(得分:7)

只需调用这个函数:

fn(*args)

答案 1 :(得分:1)

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中的print语句打印:

2 <type 'tuple'>

由于args是元组,因此您可以像任何其他元组一样访问它。