解決する方程式をユーザーが提出できるシステムをセットアップしようとしています。私は問題の完全なパラメータ化を表すクラスDPを持っています。異なるクラスdpsolverはdpオブジェクトをとり、行列を構築し、問題を解決します。Python:評価関数を使用せずに動的に関数の引数を生成する方法
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クラスには、p、k、およびzをキーとして(その順序で)持つOrderedDictが含まれています。 p_prime、k_prime、z_primeはすべてソルバーによって推論されます。私の質問は、ソルバーからequation1関数を呼び出す正しい方法は何でしょうか。できるだけシンプルにしたいので、他の人がこのシステムに簡単に統合できる方程式を提出することができます。
私は、evalを使うとリストが使えると思っていたし、evalを使って式1の中でリストを展開することを考えていた。 evalを使用せずにこれを行う最善の方法は何ですか?それとも、パフォーマンス面ではevalが大丈夫でしょうか?
私は混乱しています。どのようにして*あなたが定義した引数でその関数を呼び出すことはできませんか? – SingleNegationElimination