用Python语法调用函数

时间:2010-11-25 09:58:02

标签: python syntax

嘿我在python 2.6中编写一个小程序,我已经定义了 2个辅助函数几乎可以完成我想要的任务,例如

def helper1:
    ...


def helper2:
    ...

现在我的问题是我想创建一个新函数,在一个函数中收集这两个函数,所以我不必写(在shell中):

list(helper1(helper2(argument1,argument2)))

但只是

function(argument1,argument2)

有什么简短的方法吗?我是python的新手,或者你需要更多代码样本才能回答?

提前填写任何提示或帮助

3 个答案:

答案 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)