JustCaptain kod-buduschego
b2eaa8da9b02e1bfb94cf3e9a886e8d0158a4f36
Перейти к файлу
Код
kod-buduschego Python 2025-20264.4. Декораторexample_2.py
anc update c70a58f 8 октября 2026 г.
example_2.py
import time
from typing import Any


def debug_decorator(func) -> Any:
    count: int = 0

    def save_log(message: str) -> None:
        with open("logger.log", mode="w", encoding="utf-8") as file:
            file.write(message)

    def wrapper(*args, **kwargs) -> Any:
        print(type(func))
        nonlocal count
        count += 1
        print(count)
        print("Вызов функции:", func.__name__)
        print("Аргументы:", args, kwargs)
        start = time.time()
        try:
            result = func(*args, **kwargs)
            print("Время работы программы:", time.time() - start)
            print("Результат:", result)
            return result
        except TypeError:
            save_log("Произошла ошибка типа")
            return 0

    return wrapper


@debug_decorator
def add_numbers(x: int, y: int) -> int:
    return x + y


@debug_decorator
def minus_numbers(x: int, y: int) -> float:
    return x - y


add_numbers(5, 5)
add_numbers(5, "5")
minus_numbers(-15, -20)
add_numbers(2, 2)