JustCaptain kod-buduschego
bb03bcdc780611e5fa808dc647b9a71eb07c292d
Перейти к файлу
Код
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)