【发布时间】:2021-11-18 19:27:31
【问题描述】:
我正在尝试编写一个以文字函数作为参数的函数:
def derive(x, y):
x = symbols(x)
y = symbols(y)
return lambdify(x, y)
derive(5, 'x**2')
这会返回一个语法错误:
File "<lambdifygenerated-32>", line 1
def _lambdifygenerated(25.0):
^
SyntaxError: invalid syntax
如果我写(在函数范围之外):
f = lambdify(x, x**2) f(5)
它有效。 感谢您对此提供的任何帮助。
【问题讨论】:
-
你想达到什么目的?你为什么称你的函数为
derive?为什么您认为使用lambdify会对您的方法有用?写像x = symbols(x)这样的东西非常令人困惑,应该避免;请不要在那里重用变量名。 -
我想以这种方式编写函数的原因是:在机器学习中,计算给定函数的导数有几个步骤(使用 pytorch)。因此我想创建上述函数(虽然不完整),其中一个参数是要区分的函数。例如,derive(5, x**2) 将给出 2*x=10。