First implementation

  • Idea: hold independent variable and ``set parameters'' code as strings

  • Exec these strings (to bring the variables into play) right before the formula is evaluated
    class StringFunction_v3:
        def __init__(self, expression, independent_variable='x',
                     set_parameters=''):
            self._f_compiled = compile(expression, 
                                       '<string>', 'eval')
            self._var = independent_variable  # 'x', 't' etc.
            self._code = set_parameters
    
        def set_parameters(self, code):
            self._code = code
    
        def __call__(self, x):
            exec '%s = %g' % (self._var, x)  # assign indep. var.
            if self._code:  exec(self._code) # parameters?
            return eval(self._f_compiled)
    

    previousnexttable of contents