嘿我在python 2.6中编写一个小程序,我已经定义了 2个辅助函数几乎可以完成我想要的任务,例如
def helper1:
...
def helper2:
...
现在我的问题是我想创建一个新函数,在一个函数中收集这两个函数,所以我不必写(在shell中):
list(helper1(helper2(argument1,argument2)))
但只是
function(argument1,argument2)
有什么简短的方法吗?我是python的新手,或者你需要更多代码样本才能回答?
提前填写任何提示或帮助
答案 0 :(得分:8)
def function(arg1, arg2):
return list(helper1(helper2(arg1, arg2)))
应该有用。
答案 1 :(得分:2)
function = lambda x, y: list(helper1(helper2(x, y)))
答案 2 :(得分:2)
这是高阶函数compose
的示例。放置
def compose(*functions):
""" Returns the composition of functions"""
functions = reversed(functions)
def composition(*args, **kwargs):
func_iter = iter(functions)
ret = next(func_iter)(*args, **kwargs)
for f in func_iter:
ret = f(ret)
return ret
return composition
您现在可以将您的功能编写为
function1 = compose(list, helper1, helper2)
function2 = compose(tuple, helper3, helper4)
function42 = compose(set, helper4, helper2)
等