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