Python 为什么我的lambdify在添加自己的函数时不工作

Python 为什么我的lambdify在添加自己的函数时不工作,python,sympy,Python,Sympy,我创建了一个函数,并使其在Symphy表达式中可用,如下所示: def Unit(x): if(x != 0): return 0 else: return 1 Unit = Function('Unit') x = Symbol('x') 我的表情是: fx = x ** 2 + Unit(x) 但当我跑步时: lam_f = lambdify(x, fx, modules=["sympy"]) p

我创建了一个函数,并使其在Symphy表达式中可用,如下所示:

  def Unit(x):
        if(x != 0):
            return 0
        else:
            return 1
  Unit = Function('Unit')
  x = Symbol('x')
我的表情是:

fx = x ** 2 + Unit(x)
但当我跑步时:

lam_f = lambdify(x, fx, modules=["sympy"])
print(lam_f(-1))
它说我的单位没有定义? 有人能解释我哪里出错了吗?

Function('Unit')
返回一个名为
Unit
的未定义函数。看见如果要使用先前定义的函数
单元
,请删除对
函数()的调用

def装置(x):
如果(x!=0):
返回0
其他:
返回1
x=符号('x')
fx=x**2+单位(x)
lam_f=lambdify(x,fx,modules=['sympy'])
打印(lam_f(-1))#打印1
当我将simpify()函数与fx一起使用时,它返回1,而我希望它返回我的完整表达式。