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) |