Так что я прочитал это page о декораторах, но я до сих пор не понимаю , когда декораторы полезны.Почему декораторы полезны?
Рассмотрите фрагмент кода, определяющий функцию f
, а затем вызывающий его несколько раз. По какой-то причине мы хотим, чтобы f
выполнял дополнительную работу. Таким образом, у нас есть 2 способа сделать это:
- определяют новую функцию
g
которая вызываетf
, и делает дополнительную работу, необходимую. Затем в главном коде замените все вызовы наf
вызовами вg
- определяют декоратора
g
и редактировать код для добавления@g
перед вызовомf
В конце концов, они оба достичь того же результата и преимущество 2) более 1) для меня не очевидно. Что мне не хватает?
В тот день, когда вы в них нуждаетесь, это когда вы действительно найдете его полезность. –
Декораторы - это просто синтаксический сахар. В любом месте, где вы хотите обернуть функцию или приложить побочные эффекты к функции, декораторы полезны. –
Здесь вы можете найти много хороших отзывов. Я думаю: http://stackoverflow.com/a/489754/463678 – Jared