Задать вопрос
@natalya1000

Почему не отображается время работы функции при использовании datetime.now()?

Нижеприведенный код по задумке должен выдавать время, которое отработала функция.
Т.е. мы создали декоратор, который выдает время функции. После навешивания декоратора на функцию - должно выдавать время работы функции.
Например: 0:00:12. Но по какой-то причине у одного человека этот код работает, а у меня - нет.

У меня всегда выводится результат по нулям: 0:00:00 - время работы функции. Не понимаю, что сделано не так, хотя вроде все должно отрабатывать.

from typing import Callable
from datetime import datetime

def deco_time(func: Callable) -> Callable:
    def inner(*args, **kwargs):
        start = datetime.now()
        result = func(*args, **kwargs)
        finish = datetime.now()
        print(f'Время работы функции: {finish - start}')
        return result
    return inner

@deco_time
def summa(a, b):
    return a + b

print(summa(5000000000, 100000000))
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
natalya1000, Сделайте чуть более нагруженную функцию. То что у вас сейчас считается за столь незначительное время, что у вас всегда будет по нулям.

Ну и, если вам непременно нужно подсчитывать столь незначительные промежутки, используйте
perf_counter() из модуля time.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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