Converta expressões simbólicas em funções Python usando o SymPy

Eu tenho uma função simbólica bastante grande que é avaliada para diferentes valores de um parâmetro em um loop. Em cada iteração, após encontrar a expressão da função, derivadas parciais são derivadas. Algo assim:

from sympy import diff, symbols,exp

def lagrange_eqs(a):
    x,y,z= symbols('x y z')
    FUNC=x**2-2*x*y**2+z+a*exp(z)
    d_lgrng_1=diff(FUNC,x)
    d_lgrng_2=diff(FUNC,y)
    d_lgrng_3=diff(FUNC,z)
    return [d_lgrng_1,d_lgrng_2,d_lgrng_3]

Em seguida, preciso converter a saída dessa função em uma função Python para que eu possa usarfsolve para encontrar valores x, y, z para os quais as derivadas são zero. A função deve ter x, y, z como uma lista.

Agora, aqui está o meu problema: como converter a saída da função acima para uma função Python que pode ser passada para um solucionador. Essa função deve ficar assim (para a = 3):

def lagrange_eqs_solve(X): 
    x,y,z=X
    return [2*x - 2*y**2, -4*x*y, 3*exp(z) + 1]

Simplesmente copiei a saída da primeira função para criar a segunda. Existe uma maneira de codificá-lo? (O Matlab possui uma função interna para isso, chamada matlabFunction)

questionAnswers(1)

yourAnswerToTheQuestion