![]() | Simple implementation:
class StringFunction_v1: def __init__(self, expression): self._f = expression def __call__(self, x): return eval(self._f) # evaluate function expression |
![]() | Problem: eval(string) is slow; should pre-compile expression
class StringFunction_v2: def __init__(self, expression): self._f_compiled = compile(expression, '<string>', 'eval') def __call__(self, x): return eval(self._f_compiled) |