Материалы шестой лекции.

Комментарии

  1. Решить проблему с тем, что декоратор теряет docstring и имя функции, к которой он применяется, как ни странно, можно при помощи декоратора

     import functools
    
     def caching(function):
         computed_results = {}
    
         @functools.wraps(function)
         def new_function(*args):
             if args not in computed_results:
                 computed_results[args] = function(*args)
             return computed_results[args]
    
         return new_function