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