Что означает размещение @your_decorator над функцией с именем foo?
@your_decorator
foo
Она только изменяет отображаемое имя foo.
Она немедленно вызывает foo каждый раз при импорте модуля.
Это синтаксический сахар для переназначения foo результатом your_decorator(foo).
your_decorator(foo)
Она заставляет foo наследоваться от декоратора как от класса.