В этом домашнем задании мы:
- Добавим поле для дня рождения Birthday. Это поле не обязательное, но может быть только одно.
- Добавим функционал работы с Birthday в класс Record, а именно функцию days_to_birthday, которая возвращает количество дней до следующего дня рождения.
- Добавим функционал проверки на правильность приведенных значений для полей Phone, Birthday.
- Добавим пагинацию (постраничный вывод) для AddressBook для ситуаций, когда книга очень большая и надо показать содержимое частями, а не всё сразу. Реализуем это через создание итератора по записям.К
- AddressBook реализует метод iterator, который возвращает генератор по записям AddressBook и за одну итерацию возвращает представление для N записей.
- Класс Record принимает ещё один дополнительный (опциональный) аргумент класса Birthday
- Класс Record реализует метод days_to_birthday, который возвращает количество дней до следующего дня рождения контакта, если день рождения задан.
- setter и getter логику для атрибутов value наследников Field.
- Проверку на корректность веденного номера телефона в setter для value класса Phone.
- Проверку на корректность веденного дня рождения в setter для value класса Birthday.