Декораторы в Python еще хороши тем, что позволяют НЕ выполнять декорируемую функцию.
Например у нас есть функция:
def function():
print("Hello")
result = requests.get("https://google.com")
return result.text
Эта функция сделает запрос на
google.com и вернет текст запрашиваемой страницы.
Но обычно такие функции являются лишь частью программы и иногда не хочется делать лишние запросы, когда тестируешь функционал, но тем не менее из функции что-то нужно вернуть.
Тут на помощь приходят декораторы. Делаем декоратор
@returns, указываем в скобках какое значение хотим вернуть и запускаем.
Код из функции function теперь не запустится при её вызове, а вместо result.text вернется значение 100.