Декоратор является объектно-ориентированным шаблоном разработки, который позволяет добавлять поведение к существующим классам динамическим способом. Это - одна из Банды шаблонов проектирования конструкций Four.

Шаблон "декоратор" может использоваться для добавления новой функциональности к классу, не изменяя его. Обычно это реализовано путем разделения на подклассы или делегирования.

В Python декоратор является особенным методом использования вызываемого для изменения поведения функции или класса.

В Python декораторы указаны в PEP318.

Декоратор является одной из Банды структурных Four, сначала опубликованный в Гамме и др. заказывают "Шаблоны разработки: Элементы Допускающего повторное использование Объектно-ориентированного программного обеспечения".

Больше информации доступно на Википедию.