Как я могу использовать декораторы для изменения поведения нескольких функций в Python?Python

Программы на Python
Anonymous
Как я могу использовать декораторы для изменения поведения нескольких функций в Python?

Сообщение Anonymous »

Я изучаю декораторы в Python и хотел бы использовать их для изменения поведения нескольких более сложных функций в моем коде. В частности, я хочу:
  • Записывать время выполнения каждой функции.
  • Обрабатывать и регистрировать любые возникающие ошибки. во время выполнения функции.
Вот пример одной из моих функций, которая обрабатывает список чисел, отфильтровывает четные числа и вычисляет сумму оставшиеся нечетные числа:

Код: Выделить всё

def my_function(numbers):
odd_numbers = [n for n in numbers if n % 2 != 0]
result = sum(odd_numbers)
return result
У меня также есть еще одна функция, которая обрабатывает строку, меняя местами слова в предложении:

Код: Выделить всё

def reverse_sentence(sentence):
words = sentence.split()
reversed_sentence = ' '.join(reversed(words))
return reversed_sentence
Я понимаю, как создать простой декоратор, но как мне создать декоратор, который:
  • регистрирует выполнение время каждой функции.
  • Отлавливает и регистрирует любые ошибки, возникающие во время выполнения функции.
Я хотел бы примените этот декоратор к обеим этим функциям (и, возможно, к другим). Любая помощь с примером будет принята с благодарностью!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python

Вернуться в «Python»