如何将变量传递给eval函数?在
我已经尝试过这里发布的一些解决方案,并且阅读了Python文档
我有代码“v”的这一部分,我想在代码的另一部分中重用。下面是一个片段:
v = lambda r5, cdate : somefunc(r4, cdate) + math.exp(-t_3m*r1 - t_6m*r2 - t_1y*r3 - t_2y*r4 - retfrac(d[4], d[5], cdate, eoffset = 730)*r5) + \
math.exp(-t_3m*r1 - t_6m*r2 - t_1y*r3 - t_2y*r4 - t_3y*r5)
然后我想做点什么,像:
^{pr2}$当我试图对此进行评估时,我得到的错误是:
NameError: name 'v' is not defined
一旦我从w的表达式中去掉v,我就得到了一个t峎3m的NameError,它会遍历所有变量。有人能帮帮我吗?在
eval函数接受两个附加参数,为其提供全局和局部变量。在
你只需要这样称呼它:
eval(w,globals(),locals())
假设在调用eval()时,w字符串中的变量引用都在作用域内。在
相关问题 更多 >
编程相关推荐