Вопросы с тегом «decorator»

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

5
Что такое «декораторы» и как они используются?
Мне интересно, какие именно декораторы есть в AngularJS. В Интернете не так много информации для декораторов, за исключением рекламы в документации AngularJS и краткого (хотя и интересного) упоминания в видео на YouTube . Как говорят ребята из Angular, декоратор это: Оформление сервиса, позволяет декоратору перехватить создание экземпляра сервиса. Возвращенный экземпляр …

11
Декораторы Python в классах
Можно ли написать что-нибудь вроде: class Test(object): def _decorator(self, foo): foo() @self._decorator def bar(self): pass Это не удается: я в @self неизвестен Я также пробовал: @Test._decorator(self) что также не удается: Тест неизвестен Я хотел бы временно изменить некоторые переменные экземпляра в декораторе, а затем запустить декорированный метод, прежде чем изменять …
148 python  class  decorator  self 

8
Различия между шаблоном прокси и декоратором
Можете ли вы дать какое-нибудь хорошее объяснение, в чем разница между Proxy и Decorator ? Основное различие, которое я вижу, заключается в том, что когда мы предполагаем, что Proxy использует композицию, а Decorator использует агрегацию, тогда кажется очевидным, что, используя несколько (один или несколько) декораторов, вы можете изменять / добавлять …

2
Разница между шаблонами проектирования Фасад, Прокси, Адаптер и Декоратор? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . Улучшить этот вопрос В чем разница между шаблонами проектирования Фасад, Прокси, …

8
Как украсить класс?
В Python 2.5 есть способ создать декоратор, украшающий класс? В частности, я хочу использовать декоратор, чтобы добавить член в класс и изменить конструктор, чтобы он принимал значение для этого члена. Ищете что-то вроде следующего (с синтаксической ошибкой в ​​'class Foo:': def getId(self): return self.__id class addID(original_class): def __init__(self, id, *args, …

7
декораторы в стандартной библиотеке Python (специально @deprecated)
Мне нужно пометить подпрограммы как устаревшие, но, очевидно, нет стандартного декоратора библиотеки для устаревания. Мне известны рецепты этого и модуль предупреждений, но мой вопрос: почему нет стандартного декоратора библиотеки для этой (общей) задачи? Дополнительный вопрос: есть ли вообще в стандартной библиотеке стандартные декораторы?
128 python  decorator 

3
Как создать абстрактные свойства в абстрактных классах Python
В следующем коде я создаю базовый абстрактный класс Base. Я хочу, чтобы все классы, от которых наследуются, Baseпредоставляли nameсвойство, поэтому я сделал это свойство свойством @abstractmethod. Затем я создал подкласс Base, называемый Base_1, который предназначен для обеспечения некоторой функциональности, но при этом остается абстрактным. В нем нет nameсвойства Base_1, но, …

2
Шаблоны Ruby on Rails - декоратор против презентатора
В последнее время в сообществе Ruby on Rails много говорят о декораторах и презентаторах. В чем существенная разница между ними? Если да, то какие подсказки подсказывают мне, какой из них использовать вместо другого? Или, возможно, использовать их вместе?

6
Сохранение подписей декорированных функций
Предположим, я написал декоратор, который делает что-то очень общее. Например, он может преобразовывать все аргументы в определенный тип, вести журнал, реализовывать мемоизацию и т. Д. Вот пример: def args_as_ints(f): def g(*args, **kwargs): args = [int(x) for x in args] kwargs = dict((k, int(v)) for k, v in kwargs.items()) return f(*args, …
111 python  decorator 

8
Декоратор свойств запоминания / отложенного поиска в Python
Недавно я просмотрел существующую базу кода, содержащую множество классов, в которых атрибуты экземпляра отражают значения, хранящиеся в базе данных. Я отредактировал многие из этих атрибутов, чтобы их поиск в базе данных был отложен, т.е. не инициализироваться в конструкторе, а только при первом чтении. Эти атрибуты не изменяются за время существования …
109 python  decorator 

13
Может ли декоратор метода экземпляра получить доступ к классу?
У меня примерно следующее. В основном мне нужно получить доступ к классу метода экземпляра из декоратора, используемого для метода экземпляра в его определении. def decorator(view): # do something that requires view's class print view.im_class return view class ModelA(object): @decorator def a_method(self): # do some stuff pass Код как есть: AttributeError: …
109 python  decorator 

5
Webpack babel 6 декораторы ES6
У меня есть проект, написанный на ES6 с веб-пакетом в качестве сборщика. Большая часть транспилирования работает нормально, но когда я пытаюсь включить декораторы где угодно, я получаю эту ошибку: Decorators are not supported yet in 6.x pending proposal update. Я просмотрел трекер ошибок babel и не смог найти там ничего, …

1
Порядок выполнения декоратора
def make_bold(fn): return lambda : "<b>" + fn() + "</b>" def make_italic(fn): return lambda : "<i>" + fn() + "</i>" @make_bold @make_italic def hello(): return "hello world" helloHTML = hello() Выход: "<b><i>hello world</i></b>" Я примерно понимаю декораторы и то, как они работают с одним из них, в большинстве примеров. В …

3
Как определить, установлен ли корневой регистратор на уровень DEBUG в Python?
Если я установлю для модуля ведения журнала значение DEBUG с таким параметром командной строки: if (opt["log"] == "debug"): logging.basicConfig(level=logging.DEBUG) Как я могу позже определить, установлен ли регистратор на DEBUG? Я пишу декоратор, который будет синхронизировать функцию, если ему передан флаг True, и если флаг не задан, он по умолчанию выводит …

13
Как создать декоратор Python, который можно использовать с параметрами или без них?
Я хотел бы создать декоратор Python, который можно было бы использовать с параметрами: @redirect_output("somewhere.log") def foo(): .... или без них (например, для перенаправления вывода на stderr по умолчанию): @redirect_output def foo(): .... Это вообще возможно? Обратите внимание, что я не ищу другого решения проблемы перенаправления вывода, это просто пример синтаксиса, …
88 python  decorator 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.