Too Long; Didn't Read
A callable object is a data structure that behaves as both an object and a function. Callable objects can also be thought of as stateful functions. It’s not built in to the language like Python, but there are several ways to make it work. The main hurdle is giving a function object a reference to itself. We’re going to need to inherit from the Function constructor, which inherits from Object. We want that function to be able to access its own object and call a method, passing on its arguments.