For example
class Test:
def __call__(self, a, b):
return a+b
While the class definition is unique the instance Test() is not this results in a different hash and consequently the calculation is repeated rather than reloaded. So at the moment it is not recommended to use dynamically defined objects in combination with the caching feature.