新人求帮助: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定义为相同类型的函数,从而解决问题。
不知道如何获取函数参数表,或者如果有别的解决办法也请高手分享!!
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吧。
你看下python decorator的tutorial吧。
作者: iambic 发布时间: 2011-12-18
1楼理解有误,我并非要定义一个参数数目可变的函数,而是要使append_func对任意函数都可用。
变长参数列表的方法只能通过修改传入的函数(如例中的show)的定义,使其在append_func中可用,但是对append_func的使用仍然是受限制的,而我要是的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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28