Just an idea. But that is one dict access slower on first call with new args.
```python
if args not in self.cache:
    self.cache[args] = self.func(*args)
return self.cache[args]
```