将变量传递给eval



我正在尝试使用eval动态运行ta-lib指标,我构建了以下代码:

sy=eval("talib."+str(i)+"("+str(df['DFF'].values)+","+str(X)+")")

其中i是ta-lib指示符,df[dff']是保持价格的数据帧,X是5

我得到以下错误:

talib.MAMA([1.42 1.42 1.42 1.42 1.42 1.42 1.42 1.42 1.42 1.42 1.42 1.42 1.42 1.42
^
SyntaxError: invalid syntax

不太确定我在这里做错了什么,有人能帮忙吗?

绝对听@chris的。使用eval应该是绝对的最后手段。你在你的程序中制造了一个巨大的安全漏洞。

如果您有一个对象talib,并且您想调用某个名称存储在变量method_name中的方法,请使用以下内容:

getattr(talib, method_name)(...arguments...)

你能更好地解释一下你想做什么吗?

最新更新