What is the essential meaning of placing @your_decorator above a function named foo?
@your_decorator
foo
It only changes the displayed name of foo.
It is syntactic sugar for rebinding foo to your_decorator(foo).
your_decorator(foo)
It makes foo inherit from the decorator as a class.
It calls foo immediately every time the module is imported.