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