2017-03-02 70 views

回答

0

ODE必須是Python函數。通常用deflambda創建。

eval可以從一個字符串

In [183]: f=eval('lambda x: x**2') 
In [184]: f(10) 

創建一個函數但它被認爲是不安全:Using python's eval() vs. ast.literal_eval()?

但安全的替代不能創建一個功能

In [185]: f=ast.literal_eval('lambda x: x**2') 
... 
ValueError: malformed node or string: <_ast.Lambda object at 0xa749882c> 

對於更最近關於使用sympy創建功能的討論或直接參見:Parsing Complex Mathematical Functions in Python


的乾淨的解決方案是寫在文本文件中有效的Python代碼,將它命名爲.py,並將其導入。