Python:添加lambda定义的函数

Python:添加lambda定义的函数,python,lambda,Python,Lambda,我想知道是否有任何方法可以在函数级别添加lambda函数 import numpy as np f = lambda x: np.sin(5*x)+3 g = lambda x: np.cos(3*x)**2+1 x = np.linspace(-3.14,3.14,1000) h = f+g % is there any way to create this ? h_of_x = h(x) 这将非常有帮助。可能是这样 h = lambda x: f(x)+g(x) 可能是这个 h =

我想知道是否有任何方法可以在函数级别添加lambda函数

import numpy as np

f = lambda x: np.sin(5*x)+3
g = lambda x: np.cos(3*x)**2+1

x = np.linspace(-3.14,3.14,1000)
h = f+g  % is there any way to create this ?
h_of_x = h(x)
这将非常有帮助。

可能是这样

h = lambda x: f(x)+g(x)
可能是这个

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

如果您正在寻找符号数学,请使用


如果您正在寻找符号数学,请使用


您可以创建一个函数
plus
,该函数将两个函数作为输入并返回它们的总和:

def plus(f, g):
    def h(x):
        return f(x) + g(x)
    return h

h = plus(lambda x: x * x, lambda x: x ** 3)
例如:

>>> h(2)
12
定义
plus
可能具有以下优点:

>>> f = lambda x: x * 2
>>> h = reduce(plus, [f, f, f, f]) # or h = reduce(plus, [f] * 4)
>>> h(2)
16

您可以创建一个函数
plus
,该函数将两个函数作为输入并返回它们的总和:

def plus(f, g):
    def h(x):
        return f(x) + g(x)
    return h

h = plus(lambda x: x * x, lambda x: x ** 3)
例如:

>>> h(2)
12
定义
plus
可能具有以下优点:

>>> f = lambda x: x * 2
>>> h = reduce(plus, [f, f, f, f]) # or h = reduce(plus, [f] * 4)
>>> h(2)
16

你的意思是像
h=lambda x:f(x)+h(x)
?或者你的意思是
h=lambda x:f(g(x))
?如果可以通过为它们提供一个
\uu add\uuuuu
属性来定义函数加法肯定会很可爱:
a.\uuu add\uuuuuuu=lambda self,b:返回lambda*x:self(*x)+b(*code>。但是python似乎并不关心函数是否有一个
\uuuu add\uuuu
方法:-)好的,OOTB不起作用,但是正如@shx2的回答所示,有一个库可以为它服务!整洁。@alexis,是的,但我不想把sympy和numpy混为一谈,因为当你操作函数(32维限制)时,它会给出奇怪的错误信息。你是说像
h=lambda x:f(x)+h(x)
?还是说
h=lambda x:f(g(x))
?如果可以通过为函数添加提供一个
\uuuuu add\uuuuuu
属性来定义函数添加,那么肯定会很有趣:
a.。\uuuu add\uuuuuu=lambda self,b:return lambda*x:self(*x)+b(*x)
。但是python似乎并不关心函数是否有一个
\uuuu add\uuuu
方法:-)好的,OOTB不起作用,但是正如@shx2的回答所示,有一个库可以为它服务!整洁。@alexis,是的,但我不想把sympy和numpy混为一谈,因为当你操作函数时,它会给出奇怪的错误信息(32维限制)