+ -
当前位置:首页 → 问答吧 → 新人求帮助:python中如何获取函数参数表

新人求帮助:python中如何获取函数参数表

时间:2011-12-18

来源:互联网

现在问题是这样的,由于python允许将函数作为参数和返回值,我就写了一个append_func函数来测试,它传入f和c,其中f是某个作为参数的函数,c是一个字符串,然后该函数返回一个函数,这个函数执行f之后打印出字符串c。代码如下:

def show(x) :
print(x)

def append_func(f , c) :
def r(x) :
f(x)
print(c)
return r

print2 = append_func(show , "aa")
print2("hello , world !")

input("pause")

问题是现在show函数是单参函数,所以能传入append_func作为参数f ,如果我希望 append_func 对任意参数的函数f都可用(逻辑上是没有问题的,因为append_func函数的含义确实跟f的参数个数及类型无关), 应该如何修改呢?

所以我想如果能获取函数的参数表,就可以将append_func中定义的r定义为相同类型的函数,从而解决问题。

不知道如何获取函数参数表,或者如果有别的解决办法也请高手分享!!

作者: luochen1990   发布时间: 2011-12-18

变长参数列表。
你看下python decorator的tutorial吧。

作者: iambic   发布时间: 2011-12-18

1楼理解有误,我并非要定义一个参数数目可变的函数,而是要使append_func对任意函数都可用。

变长参数列表的方法只能通过修改传入的函数(如例中的show)的定义,使其在append_func中可用,但是对append_func的使用仍然是受限制的,而我要是的append_func对任意函数都可以使用!

作者: luochen1990   发布时间: 2011-12-18

你对1楼的理解有误。让你看python decorator的tutorial就去看。

作者: iambic   发布时间: 2011-12-18

这个问题好像前些日子有人问过的那个.

作者: I_NBFA   发布时间: 2011-12-18