您应该在函数内定义一个函数,然后返回它.像这样:
import numpy as np
import sympy as sp
def expr(k1,k2):
x,y =sp.symbols('x y')
def fn(x,y):
if x==k1:
return 0
else:
return np.divide(1,(x-k1)*(y-k2))
return fn,y
f,2)
print(f(x,y))
print(f(1,4))
编辑:
以下是在评论中使用sp.lambdify的一种方法:
x_dot = 1 / ((x - 1) * (y - 2))
f = lambda a,b : 0 if a==1 or b==2 else sp.lambdify((x,y),xdot,"numpy")(a,b)
另一种选择是使用sp.subs
f = lambda a,b: 0 if a==1 or b==2 else float(x_dot.subs({x:a,y:b}))