繁体   English   中英

大多数pythonic方式编写高阶函数

[英]Most pythonic way to write high order function

这应该是一个非常基本的问题,但我想知道处理高阶函数的最pythonic方法是什么。 我已经定义了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)

但是,至于你的例子,他们之间没有差异(我知道),所以这取决于你。 我会避免使用“pythonic”教条,只使用你认为最具可读性的内容以及最适合你特定用例的内容,而不是Python社区认为正确的内容。

请记住,Python是一种语言,就像口语一样,关于如何使用它们的规定性规则往往会限制表达性。 我想将它与Newspeak进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM