我试图建立一个系统,用户可以提交一个方程求解。我有一个类DP,它代表了问题的完全参数化。另一个类dpsolver接受dp对象,构造矩阵,并解决问题。你知道吗
创建DP对象时,其中一个属性是函数引用,其中函数如下所示:
def equation1(r, tx, p, p_prime, k, k_prime, z, z_prime ):
""" it is assumed all arguments are same sized ndarray or scalar"""
inv = k_prime - 0.8 * k
v = np.power(z_prime * inv, 0.75) * (1-tx) - p*tx + p_prime
return(v)
r和tx是DP对象中定义的标量。p、 p琰prime,k,k琰prime,z,z琰prime都是基于DP类实例化中包含的其他信息构造的numpy矩阵。DP类包含一个orderedict,其中p、k和z是键(按顺序)。pu素、k素和z素都是由解算器推断出来的。我的问题是,从solver调用equation1函数的正确方法是什么。我想让这个函数尽可能简单,这样其他人就可以提交可以很容易地集成到这个系统中的方程。你知道吗
我认为使用eval可以工作,或者使用list,然后使用eval在equation1中解包list。不使用eval的最好方法是什么?或者eval在性能方面是否可以?你知道吗
从你的问题来看:
你可能已经意识到了这一点,但如果你没有意识到,请致电:
就是这样。你知道吗
同样,做
将dict扩展为关键字参数。你知道吗
Eval的存在是有原因的,但是将它用于元编程通常是个坏主意。你知道吗
相关问题 更多 >
编程相关推荐