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