Функции-оболочки Python: как рассчитать время выполнения

Чтобы создать функцию-оболочку, вычисляющую время выполнения функции в Python, вы можете использовать несколько методов. Вот несколько примеров:

Метод 1. Использование модуля времени

import time
def calculate_execution_time(func):
    def wrapper(*args, kwargs):
        start_time = time.time()
        result = func(*args, kwargs)
        end_time = time.time()
        execution_time = end_time - start_time
        print(f"Execution time: {execution_time} seconds")
        return result
    return wrapper

Метод 2. Использование модуля timeit

import timeit
def calculate_execution_time(func):
    def wrapper(*args, kwargs):
        start_time = timeit.default_timer()
        result = func(*args, kwargs)
        end_time = timeit.default_timer()
        execution_time = end_time - start_time
        print(f"Execution time: {execution_time} seconds")
        return result
    return wrapper

Метод 3. Использование модуля datetime

import datetime
def calculate_execution_time(func):
    def wrapper(*args, kwargs):
        start_time = datetime.datetime.now()
        result = func(*args, kwargs)
        end_time = datetime.datetime.now()
        execution_time = end_time - start_time
        print(f"Execution time: {execution_time.total_seconds()} seconds")
        return result
    return wrapper

В этих примерах используются разные модули для измерения времени выполнения функции. Каждый метод создает функцию-оболочку, которая вычисляет время до и после выполнения целевой функции и печатает продолжительность.