NumApproxという名前のクラスがあります。これは入力として文字列をとります(変数 'x'を含む数式)。その中のすべてのメソッドは全く異なりますapproachsは「X」の数値所定の演算式を統合するPython 3.5クラス関数の評価を取り除く方法
予想入力例:
input = " x ** 2 * log(x) "
input = "1/sqrt(2*pi) * exp(- x **2/2) "
私が分離した文字列入力によって提供される「X」変数の制御を取ることができるか疑問ました私のクラス内のどこからでも 'eval'関数を使わずに使ってください。
これは私がやったことですが、私はその '評価関数'が好きではなく、Pythonクラスの限られた知識を与えられています...私は 'eval' ?
from math import pi, sqrt, exp, log
class NumApprox:
def __init__(self, expr):
self.expr = expr
def pdf(self, x):
self.x = x
self.ev = eval(self.expr.replace('x', 'self.x'))
return self.ev
def integrate_rect_method(self, A, B, n):
...
'eval'を使わずに任意の式を評価したいのであれば、ある種のパーサーを調べる必要があるでしょう。 – Iluvatar
[SymPy](http://www.sympy.org/)のようなモジュールを使うのが好ましい – furas
'self.expr.replace( 'x'、 'self.x')'は、 'expr'は' exp(x) 'ですか? – donkopotamus