@nicola Для того, чтобы создать декоратор-класс, Вы можете воспользоваться библиотекой functools
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
from functools import wraps # Импортируем из functools модуль для работы с декораторами class Replicator: ''' Данный декоратор принимает в аргументы переменную int - количество повторов функции ''' def __init__(self, count): self.count = count def __call__(self, f): # Создаем функцию, которая будет срабатывать при вызове класса @wraps(f) def wrapper(*args, **kwargs): for _ in range(self.count): f(*args, **kwargs) return wrapper @Replicator(5) # Над функцией обозначаем декоратор, в аргументах которого стоит число - это то, сколько раз выполнится функция # Т.К это декоратор, то аргумент f(саму функцию) он получит автоматически def GET(url): print(url) if __name__ == "__main__": GET("dropcode.ru") # Вывод : # dropcode.ru # dropcode.ru # dropcode.ru # dropcode.ru # dropcode.ru |