编写高阶函数的大多数Python方法



这应该是一个非常基本的问题,但我想知道处理高阶函数的最Python的方法是什么。我已经定义了fg

def f(x):
    return x**2
def g(x):
    return x**3
def gen_func(f,g):
    def func(x):
        return f(x)+g(x)
    return func
wanted_func = gen_func(f, g)

或:

import functools
def gen_func(f,g,x):
    return f(x)+g(x)
wanted_func = functools.partial(gen_func, f, g)

我可能会错过这两篇文章的不同之处?

好吧,假设你在其他地方不使用gen_func,你可以去掉它,使用下面的一行:

wanted_func = functools.partial(lambda f, g, x: f(x) + g(x), f, g)

但这不是很可读,而且部分函数应用程序实际上是多余的。不妨写下:

wanted_func = lambda x: f(x) + g(x)

但是,就你们的例子而言,(据我所知)它们之间没有区别,所以实际上这取决于你们。我会避开"Python"教条,只使用你认为最可读的东西,以及最适合你特定用例的东西,而不是Python社区认为正确的东西。

请记住,Python是一种语言,就像口语一样,关于如何使用它们的规定性规则往往会限制表达能力。我喜欢把它比作Newspeak。

相关内容

  • 没有找到相关文章

最新更新