A more efficient StringFunction (2)

  • Code:
    class StringFunction_v4:
        def __init__(self, expression, **kwargs):
            self._f_compiled = compile(expression, 
                                       '<string>', 'eval')
            self._var = kwargs.get('independent_variable', 'x')
            self._prms = kwargs
    	try:    del self._prms['independent_variable']
            except: pass
    
        def set_parameters(self, **kwargs):
            self._prms.update(kwargs)
    
        def __call__(self, x):
            self._prms[self._var] = x
            return eval(self._f_compiled, globals(), self._prms)
    

    previousnexttable of contents