Форум сайта python.su
from functools import wraps def add_msg(start_msg, end_msg): def some_decorator(func): @wraps(func) def result(*args, **kwargs): print(start_msg, func.__name__) func(*args, **kwargs) print(end_msg, func.__name__) return result return some_decorator @add_msg("старт функции", "завершение функции") def test(a, b): print(a * b) test(2, 5)
Отредактировано rascally_rabbit (Сен. 23, 2016 15:06:49)
Офлайн
Что-то делаете не так, наверное
И __name__ и __doc__ должны остаться как есть…
Офлайн
Прошу прощение, неправильно выразился.
В первом варианте менятеся, без врапера.
Офлайн