JustCaptain kod-buduschego
fba454ae81d4af46876e583f12baa21a67ab14e8
Перейти к файлу
Код
kod-buduschego Python 2025-20264.4. Декораторpracticesskilloktask_2.py
anc update c70a58f 8 октября 2026 г.
task_2.py
"""
TASK-J2 — Подсчет количества уведомлений

Контекст
Email-сервис рассылает уведомления клиентам.
Руководитель хочет знать сколько уведомлений было отправлено за время работы программы.

Требования
Создать декоратор, который считает количество вызовов функции.
После каждого вызова счетчик должен увеличиваться.
Количество вызовов должно храниться в:
send_email.calls
⸻
Пример

print(send_email.calls)

Результат:

3

"""


def metadata(func):
    def decorator(*args, **kwargs):
        decorator.calls += 1
        result = func(*args, **kwargs)
        return result

    decorator.calls = 0
    return decorator


@metadata
def send_email(email: str) -> str:
    return f"Email sent to {email}"


send_email("a@mail.com")
send_email("b@mail.com")
send_email("c@mail.com")

print(dir(send_email))
print(send_email.calls)