
Написать функцию типа декоратор на Python.


Ответы на вопрос

Ответ:
Вот самый простой пример декоратора в питоне:
```
def my_decorator(func):
def wrapper(*args, **kwargs):
print(f"Before {func.__name__} function")
print(func(*args, *kwargs))
print(f"After {func.__name__} function")
return func(*args, **kwargs)
return wrapper
@my_decorator
def sum(a, b):
return a + b
print(sum(3, 7))
```
Функция my_decorator - "обворачивает" функцию sum, тем самым получая доступ к функции sum и возможность управлять ею с целью расширения функционала.
В данном случае вывод будет следующим:
```
Before sum function
10
After sum function
10
```



Декоратор в Python - это функция, которая принимает другую функцию и добавляет к ней дополнительное поведение, не изменяя исходный код функции. Вот пример простой функции-декоратора, которая измеряет время выполнения другой функции:
pythonimport time
def measure_time(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"{func.__name__} выполнена за {end_time - start_time} секунд")
return result
return wrapper
@measure_time
def some_function():
# Здесь может быть какой-то код
time.sleep(2)
some_function()
В этом примере measure_time
- это декоратор, который измеряет время выполнения функции some_function
. При использовании декоратора @measure_time
перед определением some_function
, каждый раз, когда some_function
вызывается, декоратор измеряет время её выполнения и выводит результат в консоль.
Вы можете создать свой собственный декоратор для разных целей, добавляя или изменяя функциональность в зависимости от ваших потребностей.


Похожие вопросы

Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili