如何解决将变量传递给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...)
您能更好地解释您要做什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。