Python lambda方程的运算
我发现python不喜欢对lambda方程进行运算Python lambda方程的运算,python,lambda,Python,Lambda,我发现python不喜欢对lambda方程进行运算 y = lambda x: exp(2*x) m = lambda x: 2*y - x 产生以下错误: TypeError: unsupported operand type(s) for *: 'int' and 'function' 我目前正在研究非常长的方程,需要替换很多方程,但Python不允许我对lambda方程进行操作。 在python中有什么方法可以解决这个问题吗 使用创建匿名函数。因此,您需要将其称为一: m = lamb
y = lambda x: exp(2*x)
m = lambda x: 2*y - x
产生以下错误:
TypeError: unsupported operand type(s) for *: 'int' and 'function'
我目前正在研究非常长的方程,需要替换很多方程,但Python不允许我对lambda方程进行操作。
在python中有什么方法可以解决这个问题吗 使用创建匿名函数。因此,您需要将其称为一:
m = lambda x: 2*y(x) - x
# ^^^
请参见下面的演示:
>>> lamb = lambda x: x * 2
>>> lamb
<function <lambda> at 0x0227D108>
>>> lamb(4)
8
>>>
与此相同:
y = lambda x: exp(2*x)
def y(x):
return exp(2*x)
但是请注意,Python代码的官方样式指南PEP 0008谴责命名lambda并使用它们代替正常函数的做法:
始终使用def语句而不是
将lambda表达式直接绑定到标识符
是的:
def fx:返回2*x
否:
f=λx:2*x
第一种形式表示结果函数对象的名称为
特别是f而不是泛型。这是更多
通常用于回溯和字符串表示。用途
转让声明中的条款消除了lambda的唯一利益
表达式可以在显式def语句上提供,即它可以
嵌入到更大的表达式中
来源:这里的exp是什么???你认为结果会是什么?如果在第二行中展开y,它会是什么样子?@user3065619请仔细思考它的工作原理:不能使用lambda在第二行中包含表达式,只能使用它包含该表达式的结果。为什么命名匿名函数?使用defstatement@JBernardo-我同意。事实上,PEP 0008谴责这种做法。有关详细信息,请参阅我的编辑。我使用lambda,因为我将集成结果表达式。这些方程真的很长,所以我需要某种方法把它们分开。def函数让人感觉函数有一些重要的属性或贡献,值得它自己命名,但实际上它们只是一个超长方程的片段。