Я сейчас пытаюсь понять, что такое декораторы и для чего они используются. До сих пор я узнал, что это просто функции, которые передают и возвращают функции в качестве аргументов, и их цель - изменить функцию без изменения исходной функции.
Мой вопрос связан с classi c структура используется для их определения. Обычно вы определяете функцию декоратора, а внутри нее - другую функцию, называемую оберткой, которая возвращается функцией декоратора.
Итак, мой вопрос: почему обертка создается внутри декоратора, когда это можно сделать только с помощью функции? Разве не было бы более "pythoni c", чтобы уменьшить сторону кода, делая так?
Например, следующие 2 фрагмента кода:
def country(func):
def wrapper_function():
print("The name of my favorite country is: ")
return func()
return wrapper_function
@country # == fav_country = country(fav)
def fav():
print("Sweden")
fav()
OUTPUT :
Имя моей любимой страны:
Швеция
def country(func):
print("The name of my favorite country is: ")
return func
@country # == fav_country = country(fav)
def fav():
print("Sweden")
fav()
ВЫХОД: Название моей любимой страны:
Швеция